Node.js 使用 mssql 访问数据库
Node.js use mssql for accessing database
我正在制作 Meteor.js 应用程序,我必须从 mssql 数据库中获取数据。我使用 Meteor 1.8 和一个 npm 包 - mssql(5.1.0 版)。那是我的代码:
const sql = require('mssql')
const config = {something}
export default function fetch(query) {
const config = {something}
sql.connect(config, err => {
if (err) {
console.error(err)
return
}
// create Request object
var request = new sql.Request()
// query to the database and get the records
request.query(query, (err, recordset) => {
if (err) {
console.error(err)
return
}
return recordset
})
})
}
我有这样的错误
TypeError: sql.connect is not a function
我不知道发生了什么,我尝试了很多方法,但都失败了。当我使用 ConnectionPool 时,我看到一条错误消息,指出 ConnectionPool 不是构造函数。
执行此操作的正确方法是什么?
在我的配置文件中,我有:用户、密码、服务器、数据库、端口。
这似乎是因为您正在混合模块系统,您使用的是 require
(类似于 CommonJS),但显然是 ECMAScript 模块 (ESM)(来自 export default ...
). Node.js 本身不会让你这样做,但如果你使用某种捆绑器或转译器,也许它可能......
将您的 require
更改为:
import sql from "mssql";
...并确保 Node.js 正在使用 ESM¹,我没有收到任何关于 sql.connect
不是函数的错误。
¹ 在我的例子中,因为我使用的是 Node.js v12,所以我通过 package.json
中的 "type": "module"
和 运行 通过 node --experimental-modules filename.js
, 更多 here.
我正在制作 Meteor.js 应用程序,我必须从 mssql 数据库中获取数据。我使用 Meteor 1.8 和一个 npm 包 - mssql(5.1.0 版)。那是我的代码:
const sql = require('mssql')
const config = {something}
export default function fetch(query) {
const config = {something}
sql.connect(config, err => {
if (err) {
console.error(err)
return
}
// create Request object
var request = new sql.Request()
// query to the database and get the records
request.query(query, (err, recordset) => {
if (err) {
console.error(err)
return
}
return recordset
})
})
}
我有这样的错误
TypeError: sql.connect is not a function
我不知道发生了什么,我尝试了很多方法,但都失败了。当我使用 ConnectionPool 时,我看到一条错误消息,指出 ConnectionPool 不是构造函数。 执行此操作的正确方法是什么?
在我的配置文件中,我有:用户、密码、服务器、数据库、端口。
这似乎是因为您正在混合模块系统,您使用的是 require
(类似于 CommonJS),但显然是 ECMAScript 模块 (ESM)(来自 export default ...
). Node.js 本身不会让你这样做,但如果你使用某种捆绑器或转译器,也许它可能......
将您的 require
更改为:
import sql from "mssql";
...并确保 Node.js 正在使用 ESM¹,我没有收到任何关于 sql.connect
不是函数的错误。
¹ 在我的例子中,因为我使用的是 Node.js v12,所以我通过 package.json
中的 "type": "module"
和 运行 通过 node --experimental-modules filename.js
, 更多 here.