繁体   English   中英

Express JS路由和mysql查询无法正常工作

[英]Express js routing and mysql query not working

我刚刚开始学习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 / routes / laptop / index.js”:

var router = require('express').Router();
router.get('/laptop', require('./modules/laptop'));
module.exports = router;

“ public_html / routes / laptop / modules / 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();
};

我希望保持这种模块化,即使它看起来有点复杂,将来也将需要它。 因此,问题在于它只是不起作用,我认为这只是一个愚蠢的错误,但是我没有找到它,并且在互联网上只有简单的路由示例,因此在这种情况下我无法使用它们。

问题很可能出在您的路由中。

您正在/laptop安装单独的路由器。 在已安装的路由器中,您将在其之上设置/laptop (GET)路由,因此完整路径将为/laptop/laptop

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM