node.js - Node Express 中的 Jade URL 路由

标签 node.js express pug

我正在使用 Jade 构建 Node Express 应用程序,但我对如何将 View 路由到浏览器将发出的特定请求感到困惑。我知道为了让 URL 在浏览器中工作,我们需要使用 Node 的路由;然而,通过网上查找,我发现Express有自己的路由器。

我使用 PHPStorm 启动我的项目,index.jade 将加载...但是我如何加载其他的?这是我现有的代码:

var express = require('express'), routes = require('./routes'), http = require('http'), path = require('path');

var app = express();

app.configure(function ()
{
    app.set('port', process.env.PORT || 3000);
    app.set('views', __dirname + '/views');
    app.set('view engine', 'jade');
    app.use(express.favicon());
    app.use(express.logger('dev'));
    app.use(express.bodyParser());
    app.use(express.methodOverride());
    app.use(express.cookieParser('your secret here'));
    app.use(express.session());
    app.use(app.router);
    app.use(require('less-middleware')({ src:__dirname + '/public' }));
    app.use(express.static(path.join(__dirname, 'public')));
});

app.configure('development', function ()
{
    app.use(express.errorHandler());
});

app.get('/', routes.index);

http.createServer(app).listen(app.get('port'), function ()
{
    console.log("Express server listening on port " + app.get('port'));
});

发送应用程序的最基本方法是什么?在哪里可以找到有关此主题的更多详细文档?

谢谢。

最佳答案

I understand that in order to get URLs to work in the browser, we need to use Node's routes; however, from looking online, I have discovered that Express has its own router.

Node.js 本身不提供对“路由”的支持,但 Express 提供。您可以使用以下语法在 Express 中构建路线:

app.[verb]('[url-path]', [handler]);

因此,您的路由app.get('/',routes.index)将使用routes.index函数处理对URL路径/的HTTP GET请求。 Express 会自动将请求和响应对象传递给您的处理程序。

您可以添加更多路线,如下所示:

app.get('/users', routes.userList);
app.get('/user/:id', routes.userInfoView);
app.post('/user/:id', routes.userInfoSave);

您可以在此处找到更多相关信息http://expressjs.com/api.html#app.param

I am building a Node Express application using Jade, and I am confused about how to route my views to the specific requests the browser will make.

一旦调用了路由处理程序,例如(routes.userList),您可以在 userList 中调用 res.render() 方法来渲染您想要的 Jade 文件。例如:

res.render('user_list', 
    { users: [{name: "user1", age: 10}, {name: "user2", age: 20}] });

请参阅此处了解更多信息:http://expressjs.com/api.html#res.render

关于node.js - Node Express 中的 Jade URL 路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12067230/

相关文章:

javascript - 使用 Promise 确保文件流已结束

node.js - 在 intel galileo linux 中与 node.js 进行 rsync

node.js - 如何以 Angular 4在帖子正文中发送数据

node.js - 无法从 Arduino 以太网扩展板连接到 Node.js Web 服务器

javascript - 通过调用服务器端 javaScript 从 Node.JS Express 中的静态文件写入文件

javascript - 使用 Jade 而不是 EJS 时的不同行为

javascript - Jade bug 脚本加载顺序困惑

jquery - 当我滚动经过某个部分的某个部分时,某些元素不会淡入

javascript - 如何在nodejs中获取header请求

javascript - 我的 javascript 服务器代码可以读取 "2011",如果它们都是字符串,为什么不能读取 "20,11"?