这是我的模特:
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){
语法错误:{意外令牌
为什么会出乎意料?我不能在这里使用函数的主体???
答案 0 :(得分:4)
您需要传入一个函数。不幸的是,像外面这样的块声明无法工作。
这很可能是您所需要的:
Party.getAllParties(function (err, parties) {
// rest of your logic here
});
答案 1 :(得分:0)
当您调用函数时,不能放置这些块语句。
看起来你想要像
这样的东西Party.getAllParties(function() {
// ...
})
传递自治回调函数的地方