【发布时间】:2014-04-21 00:31:58
【问题描述】:
我最近在渲染 html 页面时遇到了 express 问题。 我的应用有以下组织:
app/
server.js
views/
index.html
dashboard.html
containers/
show.html
......
在 server.js 中我声明了以下路由:
app.configure(function(){
app.use(express.static(path.join(__dirname,'/views')));
});
app.get('/containers/:id',function(req,res){
console.log("Inspect container");
res.render('/views/containers/show.html');
});
在dashboard.html 中我有一个如下所示的链接:
<a href="/containers/'+data[i].Id+'">Test</a>
但是当我尝试访问以下链接时,我得到了这个错误:
Error: Cannot find module 'html'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at new View (/root/HarborJS/node_modules/express/lib/view.js:43:49)
at Function.app.render (/root/HarborJS/node_modules/express/lib/application.js:488:12)
at ServerResponse.res.render (/root/HarborJS/node_modules/express/lib/response.js:759:7)
at io.sockets.on.socket.on.exec.user (/root/HarborJS/server.js:32:7)
at callbacks (/root/HarborJS/node_modules/express/lib/router/index.js:164:37)
at param (/root/HarborJS/node_modules/express/lib/router/index.js:138:11)
我现在真的不知道该怎么办。如果我做错了什么,请告诉我。
【问题讨论】:
-
res.render用于渲染模板,但您告诉它渲染一个基本的 HTML 文件,它不知道如何处理,因为html不是模板语言。你想用'+data[i].Id+'达到什么目的?data是什么? -
data[i].Id 只是我从 socket.io 获得的一个 ID,这里没什么特别的。所以我该怎么做 ?为了解决这个问题,我是否应该立即切换到翡翠?