我怎样才能将模块要求到我的文件中?

How can I require the module into my file?

我创建了一个 express 项目,目录结构如下:

/
  - model
    db.js
  - routes
    users.js
  app.js

在 ./model/db.js 中,我有一个 MySql 连接:

var mysql      = require('mysql');
var connection = mysql.createConnection({
host     : 'localhost',
user     : 'root',
password : 'root',
database : 'imei_node'
});

connection.connect();

而在./routes/users.js中,我需要查询数据库:

var express = require('express');
var router = express.Router();
var connection = require('./model/db.js');   // always cannot find the module....

router.route('/')
.get(function (req, res) {
    connection.query(
        'select * from user',
        function (err, rows, fields) {
            if (err) {
                res.status(500).send('error');
            } else {
                res.send({
                    result      : 'success',
                    err         : '',
                    err_type    : '',
                    fields      : fields,
                    rows        : rows,
                    length      : rows.length
                });
            }
        }
    )
});


module.exports = router;

但是调试器总是提示找不到模块'./model/db.js'.

我是 nodejs 的新手,谁能告诉我如何将 db.js 添加到路由文件中?非常感谢。

./ 指的是当前目录,而 ../ 指的是父目录。

/routes/users.js 您试图要求 ./model/db.js 试图在 /routes/model/db.js.

中查找文件

尝试将其更改为 var connection = require('../model/db.js');

此外,值得注意的是您不需要包含 .js,Node 会自动附加它。

var express = require('express');
var router = express.Router();
var connection = require('../model/db.js');   // the module....

router.route('/')
.get(function (req, res) {
    connection.query(
        'select * from user',
        function (err, rows, fields) {
            if (err) {
                res.status(500).send('error');
            } else {
                res.send({
                    result      : 'success',
                    err         : '',
                    err_type    : '',
                    fields      : fields,
                    rows        : rows,
                    length      : rows.length
                });
            }
        }
    )
});


module.exports = router;