- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试连接 mysql,但它显示req.getConnection 不是一个函数
下面是我使用过的代码片段。在app.js
var mysql = require('mysql'),
connection = require('express-myconnection'),
dbOptions = {
host: 'localhost',
user: 'root', password: '',
port: 3306,
database: 'nodejs'
};
app.use(connection(mysql, dbOptions, 'request'));
在 Customers.js 中
exports.list = function(req, res, next) {
req.getConnection(function(err, connection) {
if (err) return next(err);
connection.query('SELECT * FROM customer', function(err, rows) {
if (err) console.log("Error Selecting : %s ", err);
res.render('customers', {
page_title: "Customers - Node.js", data: rows
});
});
});
};
您能检查一下哪里做错了吗?我对 Nodejs 还很陌生,所以可能我遗漏了一些东西。
如果你想查看我的完整包,请关注以下网址,我已将所有代码推送到我的 git 存储库中 https://github.com/chiraggmodi/nodeCrud
最佳答案
您需要移动此行:
app.use(connection(mysql, dbOptions, 'request'));
现在,它是在您的路由之后声明的,这意味着请求永远不会通过它(这就是 Express 的工作原理:请求按照声明的顺序通过中间件和路由处理程序传递)。
如果您将其用于代码中需要 req.getConnection()
才能工作的路由之前的位置(可能是 here ),则请求将首先通过通过 express-myconnection
中间件和 then 传递给路由处理程序,确保 req.getConnection()
在这些路由中可用处理程序。
编辑:仔细观察,您的客户路线也不正确。
你有这个:
router.get('/', function(req, res, next) {
res.render('customers', customers.list);
});
但是 customer.list
本身就是一个路由处理程序,而不是您应该传递给 res.render()
的内容。相反,试试这个:
router.get('/', customers.list);
(对于 customers_route.js
中的所有其他路线也类似)
关于javascript - req.getConnection 不是express-myconnection 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43520132/
我使用 Entity Framework 代码优先, 我的连接字符串位于配置文件中: 当我尝试访问数据(应该创建数据库的东西)时,出现以下错误: The connectio
我正在尝试连接 mysql,但它显示req.getConnection 不是一个函数下面是我使用过的代码片段。在app.js var mysql = require('mysql'), connect
我用 C++ 编写了一个 Qt 程序,以便访问数据库并将数据库表加载到 TableView !我的程序没有显示任何编译错误,但给出了 2 个运行时错误 QSqlDatabasePrivate::rem
是否需要调用MySQL命令$myconnection->disconnect(); 在退出我的 Perl 脚本之前?我在某处读到这不是必需的,但我想确定一下。 谢谢 最佳答案 不,这不是必需的。当您的
我是一名优秀的程序员,十分优秀!