繁体   English   中英

导出控制器在nodeJs中不起作用

[英]Exporting controller is not working in nodeJs

我正在创建一个简单的应用程序来显示数据库中的联系人/用户。 我已经根据网上的一些参考资料做了以下工作。 我收到错误消息“找不到模块。.path/ controller / ContactController”

  1. 这是使用MVC的正确方法吗? 因为我发现mays在网上可以使用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;

型号/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": "*"
         }
      }

您需要错误的路径。

require(controllerPath + '/' +  controller +  'Controller')(app, mongoose);

此串联与此文件名不匹配:controller / contact.js

如下更改forEach循环

['contact'].forEach(function(controller){
  require(controllerPath + '/' +  controller)(app, mongoose);
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM