Node.js TypeError[ERR_INVALID_ARG_TYPE]:该;“原件”;参数必须是function类型。接收未定义
我正试图保证我的mysql池连接,这样我就可以使用Node.js TypeError[ERR_INVALID_ARG_TYPE]:该;“原件”;参数必须是function类型。接收未定义,node.js,sql-server,Node.js,Sql Server,我正试图保证我的mysql池连接,这样我就可以使用wait关键字 const sql = require('mssql/msnodesqlv8'); const keys = require('../config/keys'); const util = require('util') //Need this package for windows authentication require('msnodesqlv8'); let config; console.log(keys) if
wait
关键字
const sql = require('mssql/msnodesqlv8');
const keys = require('../config/keys');
const util = require('util')
//Need this package for windows authentication
require('msnodesqlv8');
let config;
console.log(keys)
if (keys.db.state.toLowerCase() == "dev") {
config = {
user: keys.db.dev_user,
password: keys.db.dev_password,
server: keys.db.dev_server, // You can use 'localhost\\instance' to connect to named instance
database: keys.db.dev_database,
// driver:'msnodesqlv8',
pool: {
max: 10,
min: 5,
idleTimeoutMillis: 30000
},
options: {
encrypt: false,
instanceName: keys.db.dev_instanceName,
enableArithAbort: true
},
// port:57909,
enableArithAbort: false
}
}
console.log(config)
let pool = new sql.ConnectionPool(config).connect()
.then(query => {
return query
})
.catch(e => console.error("Database Trouble! ", e))
pool.query = util.promisify(pool.query)
module.exports = pool;
但我得到了一个错误:
TypeError[错误\无效\参数\类型]:“原始”参数必须为
类型函数。接收未定义
我不明白在连接后返回查询时,我们是如何接收到undefined的。为什么util.promisify()方法失败了?
pool变量是一个挂起的承诺。因此,在承诺得到解决之前,pool.query是未定义的
如何使用等待?
由于connect()方法返回一个承诺,您已经可以了。您需要解析connect承诺,然后pool将有一个query()方法,该方法也会返回一个承诺
例如:
。。。
constpool=newsql.ConnectionPool(配置);
(异步函数(){
等待池。连接();
const result=await pool.query('A query HERE');
})()