当前位置: 首页 > 知识库问答 >
问题:

使用邮递员将数据插入数据库时,控制器文件中显示错误

商骞仕
2023-03-14

在使用节点时。js我无法将数据插入数据库,我使用的是express。js,mongoose,但我在代码中提到的作为注释的获取错误

Blockquote错误为Blockquote TypeError:无法读取层的插入(E:\node\website\controller\signup.js:5:25)处未定义的属性“名称”。在路由的下一个(E:\node\website\node\u modules\express\lib\router\layer.js:95:5)处理[作为句柄\u请求](E:\node\website\node\u modules\express\lib\router\route.js:137:13)。层上的调度(E:\node\website\node\u modules\express\lib\router\route.js:112:3)。在E:\node\website\node\u modules\express\lib\router\layer.js:95:5处处理[作为句柄\u请求](E:\node\website\node\u modules\express\lib\router\index)。js:281:22 at功能。在函数的下一个(E:\node\website\node\u modules\express\lib\router\index.js:335:12)处(E:\node\website\node\u modules\express\lib\router\index.js:275:10)处理_参数。在层的路由器(E:\node\website\node\u modules\express\lib\router\index.js:174:3)上处理(E:\node\website\node\u modules\express\lib\router\index.js:47:12)。在E:\node\website\node\modules\express\lib\router\layer.js:95:5)的trim\u前缀(E:\node\website\node\modules\express\lib\router\index.js:317:13)处处理[作为handle\u请求](E:\node\website\node\ru modules\express\lib\router\index.js)。js:284:7 at函数。在第层的expressInit(E:\node\website\node\modules\express\lib\router\index.js:335:12)的下一个(E:\node\website\node\modules\express\lib\router\index.js:275:10)处理参数(E:\node\website\node\modules\express\lib\middleware\init.js:40:5)。在E:\node\website\node\modules\express\lib\router\layer.js:95:5)的trim\u前缀(E:\node\website\node\modules\express\lib\router\index.js:317:13)处处理[作为handle\u请求](E:\node\website\node\ru modules\express\lib\router\index.js)。js:284:7 at函数。在查询(E:\node\website\node\modules\express\lib\router\index.js:335:12)的下一个(E:\node\website\node\modules\express\lib\router\index.js:275:10)中,在查询(E:\node\website\node\modules\express\lib\middleware\query.js:45:5)的Blockquote//控制器文件中处理参数,命名为注册。js

var express=require('express');
var post1=require('../model/singup')
var router=express.Router();
var insert=(req,res)=>{
    var name1= req.body.name;// error:name is not defined
    var email1= req.body.email;//error:email is not defined
    var password1= req.body.password;//error:password is not defined
    post1.create({
        name: name1,email:email1,password:password1
    },(err,result)=>{
        if(err){res.json({message:'error'
           })
        }
        else{res.json({message:'sucessful',result:result   
        })
     } 
})
}
router.post('/signup',insert);
router.get('/h',(req,res)=>{
    res.json({ 
        message:'insert'
    })
    console.log("insert");
    })
module.exports=router;

Blockquote//名为signup的模型文件。js

require('../db');
var mongoose=require('mongoose');
mongoose.Promise=require('bluebird');
var schema= new mongoose.Schema({
    name:{type:String,required:true},
    email:{type:String,required:true},
    password:{type:String,required:true},   
},
{timestamp:true});
module.exports=mongoose.model('post1',schema);

用于数据库连接//db.js文件

var mongose=require('mongoose');
mongose.set('useNewUrlParser', 'true');
mongose.set('useCreateIndex', 'true');
mongose.set('useFindAndModify', 'true');
mongose.connect("mongodb://127.0.0.1:27017/website");
var db=mongose.connection;
db.on('error',console.error.bind(console,'connection error'));
db.once('open',(req,res)=>{
    console.log("connected with db!!!");
})

区块报价//index.js

var app=require('./server')
var signup=require('./controller/signup')

 var session=require('express-session')
app.set('viewengin','ejs')
app.set('useNewUrlParser', 'true')
app.set('useUnifiedTopology', 'true')
app.use('/user',signup)
app.use(session({
    secret:'keyboard cat ',
    resave:false,
    cookies:{
        secrue:true
    },
}))
app.all('*',(req,res)=>{
    return res.json({status: 205,message: 'not found'});
})
var server=app.get('/',(req,res)=>{
req.end()
});

共有1个答案

易昌翰
2023-03-14

似乎你错过了身体解析器中间件。

$ npm i body-parser
var express=require('express');
var bodyParser = require('body-parser');

// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())
 类似资料:
  • 我正在尝试从我创建的一个简单的联系人表单中插入数据。我正在使用phpMyAdmin 下面是PHP(出于安全考虑,我删除了define语句,但我可以毫无问题地建立到数据库的链接。) 当有人点击论坛上的submit按钮后,代码就会运行,据我所知,这是正常工作的。 该错误发生在php代码的末尾。正在输出“SLQ Insert Statement FAILD”,但未发布mysql错误。 我的数据库/表的设

  • 我忙于一项学校作业,我有一个由三个表组成的基本access数据库。Book、Reader和BookRated,其中as BookRated是交集表,主键userName来自Reader和ISBN来自Book组成BookRated的复合主键(作为外键)。 我正试图将信息插入书签表中,但出现以下错误

  • 而不是这个冗长的消息,我只是想显示“对不起-记录已经存在。” 这可能吗?

  • 我无法将数据从postman发布到我正在使用的mysql数据库express 我尝试过使用Body和Raw x-www-form-urlencoded 这是我的代码(是的,所有内容都在同一个文件中,我知道这不是一件好事,我很抱歉) 这是我在邮递员和数据库中的截图错误

  • 请在Access数据库中插入数据时遇到错误代码。它一直说我的INSERT INTO语句中存在sytanx错误。有人能帮我解决这个问题吗?这是代码

  • 如果框架公开了一个钩子,以便在所有bean都被注入并且数据库准备就绪时进行操作,那么这也可以起作用。