Javascript 在expressjs中呈现jade文件
我有一个基本的expressjs应用程序(使用jade),但是我在渲染基本的jade文件时遇到了问题。当我收到请求时,我解析路径名的url,并使用handle对象按如下方式路由请求: index.jsJavascript 在expressjs中呈现jade文件,javascript,node.js,Javascript,Node.js,我有一个基本的expressjs应用程序(使用jade),但是我在渲染基本的jade文件时遇到了问题。当我收到请求时,我解析路径名的url,并使用handle对象按如下方式路由请求: index.js var requestHandlers = require('./requestHandlers'); var handle = {}; handle['/'] = requestHandlers.start; handle['/download'] = requestHandlers.down
var requestHandlers = require('./requestHandlers');
var handle = {};
handle['/'] = requestHandlers.start;
handle['/download'] = requestHandlers.download
requestHandlers.js
function start(res) {
console.log("request handler for start called");
res.render('home', {title: 'express'});
}
function download(res) {
res.render('download', {title: 'download'})
res.end();
}
exports.start = start;
exports.download = download;
杰德之家
h1= title
p Welcome to #{title}
我使用Jade作为模板引擎,并在一个单独的server.js文件中配置了服务器。当我请求其中一个页面时,标题会正确地显示在我的浏览器选项卡上,但页面不会显示,它只是继续加载。奇怪的是,当我取消请求时,页面会显示出来。就好像一切都正常,但没有任何东西能告诉过程结束
我对node比较陌生,所以请原谅我对以上任何一点的天真。如果有任何问题我可以澄清,请告诉我 我不能100%肯定为什么您的代码没有按需要终止TCP连接以防止浏览器超时,但我可以提供一个对Express约定友好的解决方案,它应该解决您的问题并保持代码的可读性、可维护性和分离性 /app.js(您的主服务器脚本) /routes/index.js
exports.init = function (app) {
app.get('/', function (req, res) {
console.log("request handler for start called");
// Render __dirname/views/home.jade
res.render('home', {title: 'express'});
});
app.get('/download', function (req, res) {
// Render __dirname/views/download.jade
res.render('download', {title: 'download'})
});
});
以上内容使您无需自己解析URL参数。您还可以定义更具可读性和功能更强大的请求处理程序(即app.post for post方法)。现在,如果您决定构建RESTAPI,就可以更轻松地绑定Express资源模块之类的东西
如果需要更强大的映射,可以在app的第一个参数中使用正则表达式。[get/post/put/del]来过滤特定路径
exports.init = function (app) {
app.get('/', function (req, res) {
console.log("request handler for start called");
// Render __dirname/views/home.jade
res.render('home', {title: 'express'});
});
app.get('/download', function (req, res) {
// Render __dirname/views/download.jade
res.render('download', {title: 'download'})
});
});