【问题标题】:Express js routing and mysql query not workingExpress js路由和mysql查询不起作用
【发布时间】:2014-07-19 12:20:08
【问题描述】:

我刚刚开始学习 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();
};

我想保持这种模块化,即使它看起来有点过于复杂,将来我会需要它。 所以问题是它不起作用,我认为它只是某个地方的一个愚蠢的错误,但我没有找到它,并且在互联网上只有简单的路线示例,所以我不能在这种情况下使用它们。

【问题讨论】:

  • 这无关紧要,但你为什么要公开你的服务器代码供所有人查看(你将express.static() 设置为包含你的代码的目录)? public_html 通常只为客户端 html/js/css/类似资产保留。
  • 另外,您还尝试在 laptop.js 中结束响应两次。
  • 是的,我知道,我在很多例子中看到了你在说什么。我也会修复它,但无论如何感谢评论。

标签: javascript mysql node.js express


【解决方案1】:

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

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

【讨论】:

  • Noit 真的明白你的意思吗?:
  • app.use('/laptop', require('./laptop/laptop'));
  • 是的,你是对的,我改变了这一行:router.get('/', require('./modules/laptop'));现在它的工作非常感谢。
猜你喜欢
  • 2017-07-01
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-16
  • 1970-01-01
相关资源
最近更新 更多