语法错误:意外令牌{

时间:2016-06-29 04:30:26

标签: javascript node.js mongoose routes

这是我的模特:

var mongoose = require('mongoose');

var partySchema = new mongoose.Schema({
  partyCode: Number,
  partyName: String,
  mobileNo: String
});

var Party = module.exports = mongoose.model('Party', partySchema);

module.exports.getAllParties = function(callback){
  Party.find().lean().exec(function(err, parties){
    if (err) return callback(err, null);
    callback(null, parties);
  });
};

这是路线:

router.get('/', function(req, res, next){

  //retrieve all parties from Party model
  //mongoose.model('Party').find({}, function (err, parties) {
  Party.getAllParties(err, parties){
        if (err) {
            return console.error(err);
        } else {
            //respond to both HTML and JSON. JSON responses require 'Accept: application/json;' in the Request Header
            res.format({

              //response in dust or jade files
              html: function(){
                  res.render('Party', {
                        title: 'Party',
                        "parties" : parties
                    });
              },

              //JSON response will show all parties in JSON format
              json: function(){
                  res.json(parties);
              }
          });
        }
  };
});

在Route.js的第9行(在上面的代码行4号中)我收到错误:

  Party.getAllParties(err, parties){

语法错误:{意外令牌

为什么会出乎意料?我不能在这里使用函数的主体???

2 个答案:

答案 0 :(得分:4)

您需要传入一个函数。不幸的是,像外面这样的块声明无法工作。

这很可能是您所需要的:

Party.getAllParties(function (err, parties) {  
    // rest of your logic here
});

答案 1 :(得分:0)

当您调用函数时,不能放置这些块语句。

看起来你想要像

这样的东西
Party.getAllParties(function() {
    // ...
})

传递自治回调函数的地方