【发布时间】:2017-04-25 07:22:56
【问题描述】:
我正在创建一个简单的应用程序来显示我的数据库中的联系人/用户。我根据网上找到的一些参考资料做了以下工作。我收到错误'找不到模块'..path/controller/ContactController'
- 这是使用 MVC 的正确方法吗?因为我在网上发现可能会使用MVC。请提出一些在 Node js 中使用 MVC 的示例。
app.js
var express = require('express'),
http = require('http'),
path = require('path'),
mongoose = require('mongoose');
var app = express();
mongoose.connect("mongodb://localhost/contact");
app.use(express.bodyParser());
app.use(express.bodyParser());
app.use(express.static(path.join(__dirname, 'public')));
app.set('views', __dirname + '/view');
app.set('view engine', 'jade');
var controllerPath = __dirname + '/controller';
require('./models/contact')(mongoose);
['Contact'].forEach(function(controller){
require(controllerPath + '/' + controller + 'Controller')(app, mongoose);
});
http.createServer(app).listen(3000, function() {
console.log('Listening on port 3000...')
})
控制器/contact.js
var Contact = require('../models/Contact');
var ContactController = function(app,mongoose){
var Contact = mongoose.model('Contact');
app.get('/contact', function(req, req){
Contact.find({},function(err, contactinfo){
res.render("contact",{contact: contactinfo });
});
})
}
module.exports = ContactController;
models/contact.js
var mongoose = require('mongoose');
var ContactSchema = new mongoose.Schema({
cid: String,
name: String,
phon: Number,
contactwith: String
});
module.exports = mongoose.model('Contact', ContactSchema);
package.json
{
"name": "SimpleAuth",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "nodemon app.js"
},
"dependencies": {
"express": "3.0.0rc4",
"jade": "*",
"mongoose": "*",
"nodemon": "*"
}
}
【问题讨论】:
-
在声明
ContactController之前缺少var关键字。 -
@S.D 我添加了你提到的'var'仍然得到同样的错误
-
尝试将文件名更改为小写,在某些版本的节点中恰好是一个问题
标签: javascript node.js model-view-controller