这是我从中导出函数的db.js
var mysql=require('mysql');
var config=
{
host:'127.0.0.1',
user:'root',
password:'',
database:'travel'
};
var con="";
var data=function getConnection()
{
con=mysql.createConnection(config);
con.connect(function(err)
{
if(err!=null)
{
console.log('connection id: '+con.threadId);
}
else
{
console.log('connection error: '+err.stack);
}
})
};
module.exports=data;
这是我的login.js文件,我从该文件中调用导出的数据功能
var express=require('express');
var db = require.main.require('./model/db');
var router=express.Router();
//routes
router.post('/',function(req,res)
{
console.log(req.body);
});
router.get('/',function(req,res)
{
data();
res.render('login');
});
module.exports = router;
这是运行代码后的错误消息。有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您应按以下方式更改导入语句,因为您是在调用data()
而不是db()
。因此您应该将import语句更改为data
而不是db
var data = require.main.require('./model/db');
答案 1 :(得分:0)
使用module.exports
时,您要指定要导出的对象,而不是名称或一组名称。由于您实际上只是导出要使用的data
函数,因此行var db = require.main.require('./model/db');
首先创建/查找该函数,然后将其分配给变量db
-原始名称不根本没有关系。
可能的解决方案(如其他答案所示)包括将data()
替换为db()
或将var db
替换为var data
。