这是我第一次使用Node,我使用的是express框架。我试图在“日历”页面上输出一个 json 对象(在 main.js 中看到)。当我运行路由器(main.js)时,出现此错误:错误:ENOENT,没有此类文件或目录 '/Users/Macbook/Desktop/node/views/('calendar.ejs')'
基本上我想将 main.js 中定义的 JSON 对象输出到我的 html 文件中。有人可以向我解释一下为什么服务器找不到日历文件吗?它可以找到index.ejs,但不能找到calendar。这是实现我想要实现的目标的正确方法吗?
下面是我设置的目录结构:
-------node_modules
-------routes
-------------main.js
-------views
------------calendar.ejs
------------index.ejs
-------package.json
-------server.js
这是我的 server.js 代码:
var express=require('express');
var app=express();
require('./routes/main')(app);
app.set('views',__dirname + '/views');
app.set('view engine', 'ejs');
app.engine('html', require('ejs').renderFile);
var server=app.listen(3000,function(){
console.log("We have started our server on port 3000");
});
这是我的 main.js 代码:
module.exports=function(app){
app.get('/', function(req,res){
res.render('index',{title:"Home page"});
});
app.get('/calendar',function(req,res){
res.json({"foo": "bar"});
});
}
最佳答案
只是猜测。
首先,使用 require('./routes/main')(app);
设置 GET/calendar
路由。
然后使用 app.set('views',__dirname + '/views'); 覆盖
。GET/calendar
路由。
您需要选择 GET/calendar
是返回呈现的 HTML 还是 JSON 数据。
关于json - 使用express在node js中输出JSON对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29109421/