我刚刚开始学习Node和Express,我对express中的路线有一些疑问。我想要一个很好的模块化路由代码。我想从mysql数据库中查询一些数据:
这是我的app.js(它位于" public_html"目录):
var path = require('path');
var express = require('express');
var routes = require('./routes');
var app = express();
var staticPath = path.resolve(__dirname, './');
app.use(express.static(staticPath));
routes.init(app);
module.exports = app;
app.listen(3000, function() {
console.log('Server is listening on port: 3000');
});
下一个文件:" public_html / routes / index.js":
exports.init = function(app){
//electronics routes
app.use('/laptop', require('./laptop'));
};
"的public_html /路由/膝上型/ index.js":
var router = require('express').Router();
router.get('/laptop', require('./modules/laptop'));
module.exports = router;
"的public_html /路由/膝上型/模块/ laptop.js":
var mysql = require('mysql');
var connection = mysql.createConnection(
{
host : 'localhost',
user : 'admin',
password : 'xxxxxxx',
database : 'database',
}
);
module.exports = function(req, res){
connection.connect();
var queryString = 'SELECT * FROM laptop';
connection.query(queryString, function(err, rows, fields) {
if (err) throw err;
res.writeHead(200, { 'Content-Type': 'application/json'});
res.end(JSON.stringify(rows));
});
connection.end();
};
我希望保持这种模块化,即使它看起来有点复杂,将来我也需要它。 所以问题是它没有工作,我认为这只是一个愚蠢的错误,但我找不到它,而且在互联网上只有简单的路由示例,所以我不能使用它们在这种情况下。
答案 0 :(得分:0)
问题很可能出在您的路由中。
您正在/laptop
安装单独的路由器。在该安装的路由器中,您将在其上设置/laptop
(GET)路由,因此完整路径为/laptop/laptop
。