Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/437.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 快速-试图模仿控制器。Get Router.use()需要回调函数,但出现[object String]错误_Javascript_Node.js_Model View Controller_Express - Fatal编程技术网

Javascript 快速-试图模仿控制器。Get Router.use()需要回调函数,但出现[object String]错误

Javascript 快速-试图模仿控制器。Get Router.use()需要回调函数,但出现[object String]错误,javascript,node.js,model-view-controller,express,Javascript,Node.js,Model View Controller,Express,我正在尝试在Node.js和Express framework中创建控制器。 我已经创建了app.js,routes/index.js和controller/index.js 以下是每个文件的代码: var express = require("express"), path = require("path"), indexRoutes = require("./routes/index"); var app = express(); app.use("view engine

我正在尝试在Node.js和Express framework中创建控制器。 我已经创建了
app.js
routes/index.js
controller/index.js

以下是每个文件的代码:

var express = require("express"),
    path = require("path"),
    indexRoutes = require("./routes/index");

var app = express();

app.use("view engine", "ejs");
app.use("views", path.join(__dirname, "views"));

app.use("/", indexRoutes);

var port = process.env.PORT || 3000;
app.listen(port, function() {
    console.log("listening to port " + port);
});
routes/index.js

var express = require("express");
var controller = require("../controller/index");

var router = express.Router();

router.get("/", controller.index);
router.get("/list", controller.list);

module.exports = router;
var indexController = {
    index: function(req, res) {
        res.send("index action");
    }, 
    list: function(req, res) {
        res.send("list action");
    }
}

module.exports = indexController;
controller/index.js

var express = require("express");
var controller = require("../controller/index");

var router = express.Router();

router.get("/", controller.index);
router.get("/list", controller.list);

module.exports = router;
var indexController = {
    index: function(req, res) {
        res.send("index action");
    }, 
    list: function(req, res) {
        res.send("list action");
    }
}

module.exports = indexController;
当我运行服务器时。我在终端中遇到此错误:

Error: Router.use() requires callback functions but got a [object String]
    at Function.proto.use (/media/misc/www/expself/node_modules/express/lib/router/index.js:327:11)
    at Function.app.use (/media/misc/www/expself/node_modules/express/lib/application.js:195:16)
    at Object.<anonymous> (/media/misc/www/expself/app.js:7:5)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:906:3
错误:Router.use()需要回调函数,但得到了一个[对象字符串]
在Function.proto.use(/media/misc/www/expself/node_modules/express/lib/router/index.js:327:11)
在Function.app.use(/media/misc/www/expself/node_modules/express/lib/application.js:195:16)
反对。(/media/misc/www/expself/app.js:7:5)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
启动时(node.js:119:16)
在node.js:906:3
有什么帮助吗?我是node.js的初学者

这些:

app.use("view engine", "ejs");
app.use("views", path.join(__dirname, "views"));
应该是:

app.set("view engine", "ejs");
app.set("views", path.join(__dirname, "views"));

app.use()路由器。获取
并粘贴结果?