при вставке данных в базу данных с использованием почтальона с ошибкой в ​​файле контроллера - PullRequest
0 голосов
/ 18 февраля 2020

при использовании node.js я не могу вставить данные в базу данных, я использую express. js, пн goose, но получаю ошибку, которую я упомянул в коде как комментарий

Ошибка Blockquote: Blockquote TypeError: Невозможно прочитать свойство 'name' undefined при вставке (E: \ node \ website \ controller \ signup. js: 5: 25) в Layer.handle [as handle_request] (E: \ node \ website \ node_modules \ express \ lib \ router \ layer. js: 95: 5) на следующем (E: \ node \ website \ node_modules \ express \ lib \ router \ route. js: 137: 13 ) в Route.dispatch (E: \ node \ website \ node_modules \ express \ lib \ router \ route. js: 112: 3) в Layer.handle [как handle_request] (E: \ node \ website \ node_modules \ express \ lib \ router \ layer. js: 95: 5) в E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 281: 22 в Function.process_params (E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 335: 12) в следующем (E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 275: 10) в функции .handle (E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 174: 3) на маршрутизаторе (E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 47: 12) на Layer.handle [as handle_request] ( E: \ node \ website \ node_modules \ express \ lib \ router \ layer. js: 95: 5) в trim_prefix (E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 317 : 13) в E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 284: 7 в Function.process_params (E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 335: 12) в следующем (E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 275: 10) в expressInit (E: \ node \ website \ node_modules \ express \ lib \ middleware \ init. js: 40: 5) в Layer.handle [как handle_request] (E: \ node \ website \ node_modules \ express \ lib \ router \ layer. js: 95: 5) в trim_prefix (E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 317: 13) в E: \ node \ website \ node_modules \ express \ lib \ router \ index. js: 284: 7 в Function.process_params (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) Цитата / / файл контроллера, именуемый подписью. 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 // файл модели, названный подписью. 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);

Blockquote //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!!!");
})

Blockquote //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 Ответ

0 голосов
/ 18 февраля 2020

Кажется, вам не хватает промежуточного программного обеспечения body .

$ 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())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...