gpt4 book ai didi

node.js - 组织expressjs路线时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-03 22:55:50 25 4
gpt4 key购买 nike

我正在关注这个article ,它描述了一种在 Express 中组织路线的好方法。但是,当我尝试访问从 main.js 文件导出的函数时,我遇到了问题。当我 curl “localhost/user/username”时出现 404 错误

//the routes section of my my app.js file
app.get('/', routes.index);
app.get('/user/:username', routes.getUser);

//my index.js file
require('./main');
require('./users');

exports.index = function(req, res) {
res.render('index', {title: 'Express'});
};

//my main.js file

exports.getUser = function(req, res){
console.log('this is getUser');
res.end();
};

----用我的解决方案编辑----

这是我采用的解决方案,也许有人会发现它有用。我也愿意听取有关这是否会在将来给我带来任何问题的建议。

//-------The routes in my app.js file now look like this.

require('./routes/index')(app);
require('./routes/main')(app);

//-------In index.js i now have this

module.exports = function(app) {
app.get('/', function(req,res){
res.render('index', {title: 'Express'});
});
};

//-------My main.js now looks like this-------

module.exports = function(app){

app.get('/user/:username', function(req, res){
var crawlUser = require('../engine/crawlUser');
var username = req.params.username;
crawlUser(username);
res.end();
});

};

最佳答案

全局变量是邪恶的,应该不惜一切代价避免。以下是我在没有全局变量和过多样板代码的情况下组织路线的方法。

// File Structure

/app.js
/routes
/--index.js
/--main.js
/--users.js

// app.js
var app = require('express');

/* Call Middleware here */

require('routes')(app);
app.listen(3000);

---------------------------------------------

// routes/index.js - This is where I store all my route definitions
// in a long list organized by comments. Allows you to only need to go to
// one place to edit route definitions.

module.exports = function(app) {

var main = require('./main');
app.get('/', main.get);

var users = require('./users');
app.get('/users/:param', users.get);

...

}

---------------------------------------------

// routes/main.js - Then in each submodule you define each function and attach
// to exports

exports.get = function(req, res, next){
// Do stuff here
})

我想最终这是一个偏好问题,但如果您希望代码保持敏捷性并与其他模块一起工作,您应该避免全局变量。即使亚历克斯·杨说没关系。 =)

关于node.js - 组织expressjs路线时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13675619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com