新来expression,我从哪里开始?

我正在学习node / express。 我已经购买了几本书,并遵循一些在线指南,我想开始修补,但我不知道在哪里添加逻辑到我的路线。 我使用express命令行工具创build了一个基本的应用程序。 我现在有两个路线在我的app.js中定义

app.get('/', routes.index); app.get('/users', user.list); 

我看到了玉的模板,我认为我完全有能力通过玉/手写笔提供普通的旧HTML。 但是我想添加逻辑,我不知道该怎么做。 它是否像php一样工作,因为我将这些逻辑添加到jade html文件,或者我把它放在app.js中。

我在一个例子中看到了如何在jade中引用一个variables,但是我想在页面显示时运行代码(服务器端,如php)。

我参考了很多PHP,因为这是我熟悉的唯一语言。

一个常见的模式是将逻辑分离成你从路由中调用的函数,你可以把它们放在不同的文件中

 var express = require('express'); var app = express(); require('http').createServer(app).listen(3000); app.use(express.logger()); app.use(express.bodyParser()); app.use(app.router); app.set('views', __dirname + '/templates'); app.set('view engine', 'jade'); var myLib = require('lib/myLib.js'); // myLib will contain: module.exports = { foo:function(req, arg, callback){ ... } }; app.get('/', function(req, res){ myLib.foo(req, 'hello', function(err, result){ // this is passed into foo as `callback` and generally is called from foo if(err){ return res.send(500) }; res.send(200, 'Foo was ' + result); }); }); // edit - ways to structure this with app.render for a jade template app.get('/jade1', function(req, res){ myLib.bar(req, res); // it is now myLib.bar's responsibility to send a response with the `res` object, // either with res.end, res.send, res.render, res.redirect or whatever }); // my preferred way: (i usually try to keep my logic separated from req/res) app.get('jade2', function(req, res){ var username = req.body.username; myLib.getUser(username, function(err, result){ if(err){ return res.send(500) }; res.locals.foobar = 'hello world'; // res.locals.x is equivalent to passing {x:_} inline to render as below: res.render('jade2', {user: result}); }); });