我是sailsjs的新手,并尝试按照教程学习,插入帖子时出现500内部错误。
这是我的所有文件:
//DashboardController.js
newpost: function(req, res){
var params = req.params.all();
var userId = req.session.user_detail._id;
//return false;
Post.create({ title: params.heading, description: params.message, posted_by: params.userId }).done(function(error, post_created){
if(err){
}else{
req.session.post_details = post_created;
res.redirect('/dashboard');
}
});
}
// Dashboard.js模型
module.exports = {
attributes: {
title:{
type:'string',
required:true,
columnName:'title'
},
description: {
type:'text',
columnName:'description'
},
posted_by: {
type: 'integer',
columnName: 'posted_by'
}
}
};
// ejs file
<div class="col-sm-7">
<h3>Post Feed Now</h3>
<br>
<div class="media">
<div class="media-body">
<form method="POST" action="/dashboard/newpost">
<table class="table">
<tr><td>Heading</td><td><input type="text" class="form-control" name="heading"></td></tr>
<tr><td>Message</td><td><textarea name="message" class="form-control"></textarea></td></tr>
<tr><td colspan="2"><input type="submit" class="btn btn-primary" value="Post Now"/></td></tr>
</form>
</table>
</div>
and error in terminal
error: Sending 500 ("Server Error") response:
ReferenceError: Post is not defined
at Object.module.exports.newpost (/var/www/html/sailsTemplate/api/controllers/DashboardController.js:21:3)
at bound (/usr/lib/node_modules/sails/node_modules/lodash/dist/lodash.js:729:21)
at routeTargetFnWrapper (/usr/lib/node_modules/sails/lib/router/bind.js:179:5)
at callbacks (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
at param (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:138:11)
at param (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:135:11)
at pass (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:145:5)
at nextRoute (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:100:7)
at callbacks (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:167:11)
at /usr/lib/node_modules/sails/lib/router/bind.js:187:7
at alwaysAllow (/usr/lib/node_modules/sails/lib/hooks/policies/index.js:207:11)
at routeTargetFnWrapper (/usr/lib/node_modules/sails/lib/router/bind.js:179:5)
at callbacks (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:164:37)
at param (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:138:11)
at param (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:135:11)
at pass (/usr/lib/node_modules/sails/node_modules/express/lib/router/index.js:145:5) [ReferenceError: Post is not defined]
我想在mongodb中创建插入帖子,是我们必须创建集合mongo db或代码插入时自动创建集合..
我不知道为什么我会收到这个问题500内部服务器。
如果需要,请问我
答案 0 :(得分:2)
如果您的模型文件名为Dashboard.js
,请Post.create
替换Dashboard.create
newpost: function(req, res){
var params = req.params.all();
var userId = req.session.user_detail._id;
Dashboard.create({ title: params.heading, description: params.message, posted_by: params.userId }).done(function(error, post_created){
if(err){
}else{
req.session.post_details = post_created;
res.redirect('/dashboard');
}
});
}
如果您希望将帖子作为模型的名称,则必须将模型文件重命名为Post.js