express router.get()函数与mongoose连用错误

下列代码中被注释部分存在错误,如果将两端注释符号/**/去掉就会出现render渲染错误。

var express = require('express');
const mongoose = require('mongoose');
const UserModel=mongoose.model('UserModel');

var router = express.Router();
const ObjectId = mongoose.Schema.Types.ObjectId;
const connection = mongoose.connect('mongodb://localhost/likeread').connection;
connection.on('error',(err)=>{
        console.log(err);
    })
    .on('open',(res)=>{
        console.log('success!');
    });


/* GET users listing. */
router.get('/', function(req, res, next) {

    /*var user_model = new UserModel({username:'xiao',email:'email@.com'});
    user_model.save((err,res)=>{
        if(err)
            console.log(err);
        
    });

    connection.disconnect((err,res)=>{
        if(err)
            console.log(err);
    });*/
      res.render('user.pug');
});


module.exports = router;

错误

at EventEmitter.render (D:\node\likeread\node_modules\express\lib\application.js:580:17)
    at ServerResponse.render (D:\node\likeread\node_modules\express\lib\response.js:966:7)
    at D:\node\likeread\app.js:60:7
    at Layer.handle_error (D:\node\likeread\node_modules\express\lib\router\layer.js:71:5)
    at trim_prefix (D:\node\likeread\node_modules\express\lib\router\index.js:315:13)
    at D:\node\likeread\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (D:\node\likeread\node_modules\express\lib\router\index.js:335:12)
    at next (D:\node\likeread\node_modules\express\lib\router\index.js:275:10)
    at Layer.handle_error (D:\node\likeread\node_modules\express\lib\router\layer.js:67:12)
    at trim_prefix (D:\node\likeread\node_modules\express\lib\router\index.js:315:13)
    at D:\node\likeread\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (D:\node\likeread\node_modules\express\lib\router\index.js:335:12)
    at Immediate.next (D:\node\likeread\node_modules\express\lib\router\index.js:275:10)
    at Immediate.<anonymous> (D:\node\likeread\node_modules\express\lib\router\index.js:635:15)
    at runCallback (timers.js:668:20)
    at tryOnImmediate (timers.js:639:5)
阅读 3.4k
2 个回答
connection.disconnect((err,res)=>{
    if(err)
        console.log(err);
});*/
  res.render('user.pug');

你这是什么鬼? res.render('user.pug');放到函数外面?

render和disconnect应该放到save完成的回调函数内部执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题