有什么方法可以让我的Node.js应用程序与Microsoft SQL通信?我没有在野外看到任何MS SQL驱动程序?
我将一个非常简单的应用程序放在一起,需要能够与现有的MS SQL数据库进行通信(否则我会使用mongoDB或Redis)
我正在尝试使用带有mssql连接接口的NodeJS连接到MSSQL 2012 .
尝试连接时,我收到以下错误:
{ [ConnectionError: Failed to connect to localhost:1433 - connect ECONNREFUSED]
name: 'ConnectionError',
message: 'Failed to conncet to localhost:1433 - connect ECONNREFUSED',
code: 'ESOCKET' }
Run Code Online (Sandbox Code Playgroud)
有想法该怎么解决这个吗?
我广泛使用 Google Colab。为了轻松访问我的 Google 驱动器中的文件,我将驱动器挂载到运行 Colab 的虚拟机的文件系统。像那样:
from google.colab import drive as cdrive
cdrive.mount('/content/gdrive')
% cd /content/gdrive/'My Drive'/'Colab Notebooks'/my_directory
Run Code Online (Sandbox Code Playgroud)
在每个会话开始时,我需要授予访问我的驱动器的权限。为此,我需要按“允许”,复制一次性密码并将其粘贴到专用文本区域。这有点乏味。
有没有更好的办法?我可以根据我的机器给予永久许可吗?还有其他想法吗?
当我尝试使用Node.js和Tedioius连接到本地SQL Server实例时,我收到此错误:
{ [ConnectionError: Failed to connect to XXXXX:1433 - connect ECONNREFUSED]
name: 'ConnectionError',
message: 'Failed to connect to XXXXX:1433 - connect ECONNREFUSED',
code: 'ESOCKET' }
Run Code Online (Sandbox Code Playgroud)
这是我的连接对象:
var config = {
userName: 'username',
password: 'password',
server: 'XXXXX',
options: {
database: 'databasename',
instancename: 'SQLEXPRESS'
}
};
Run Code Online (Sandbox Code Playgroud)
我已根据Configuration Manager检查并启用了TCP/IP并在端口1443上进行广播.SQL Server Browser服务也在运行,如果没有,我读到的可能会导致此类问题.我已禁用我的防病毒和防火墙,这也没有帮助.
任何见解?
我使用sequelize-auto生成模式,我尝试使用findOne(),我得到这个错误:
Unhandled rejection SequelizeDatabaseError: Invalid column name 'updatedAt'.
Run Code Online (Sandbox Code Playgroud)
在我的数据库表中没有字段 updatedAt
例如我的表名是Users我的代码Users.findOne(),表中没有updatedAt字段users.
db.users= sequelize.import(__dirname + "/models/users");
app.get('/users', function (req, res) {
db.user.findOne().then(function (project) {
res.json(project);
})
});
Run Code Online (Sandbox Code Playgroud)
怎么解决?
然而,我遇到了几个关于这个问题的帖子,但似乎没有一个有实际答案。几个想法,但没有一个奏效。
在挖掘了 Sequelize 和 Tedious 包并看到我的配置正确传递之后,我不知所措。
我正在尝试针对 MSSQL 中的新数据库运行迁移。我使用我在这里使用的相同凭据连接到它没有问题,所以我知道这不是问题。
我有我的 config.js 正在拉环境变量。除了我的自定义控制台语句之外,这个文件是从 sequelize 自动生成的,并且在我的 sequelizerc 中被正确引用
require('dotenv').config()
console.log('[+] Loading database config...')
if (process.env.NODE_ENV === 'production') {
console.log(`[+] Using database: ${process.env.PROD_DB_DATABASE}`)
} else if (process.env.NODE_ENV === 'development') {
console.log(`[+] Using database: ${process.env.DEV_DB_DATABASE}`)
} else if (process.env.NODE_ENV === 'test') {
console.log(`[+] Using database: ${process.env.TEST_DB_DATABASE}`)
} else if (process.env.NODE_ENV === 'local') {
console.log(`[+] Using database: ${process.env.LOCAL_DB_DATABASE}`)
} else {
console.log(`[-] CANNOT LOAD DATABASE FROM ENV: ${process.env.NODE_ENV}`)
process.exit()
}
module.exports = {
production: { …Run Code Online (Sandbox Code Playgroud) 执行几个 SQL 语句后总是出现以下错误。
我在用
var sql = require("mssql");
Run Code Online (Sandbox Code Playgroud)
(节点:12240)[DEP0064] 弃用警告:tls.createSecurePair() 已弃用。请改用 tls.Socket。warning.js:18(节点:12240)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:2):ConnectionError:无法连接到Server-100:15000ms内未定义 warning.js:18(节点:12240)[DEP0018] DeprecationWarning:未处理的承诺拒绝已被弃用。将来,未处理的 Promise 拒绝将会以非零退出代码终止 Node.js 进程。warning.js:18(节点:12240)UnhandledPromiseRejectionWarning:未处理的承诺拒绝(拒绝ID:4):ConnectionError:无法连接到Server-100:15000ms内未定义 warning.js:18
ConnectionError: Failed to connect to server-100:undefined in 15000ms
at Connection.tedious.once.err (d:\API\node_modules\mssql\lib\tedious.js:216:17)
at Object.onceWrapper (events.js:316:30)
at emitOne (events.js:115:13)
at Connection.emit (events.js:210:7)
at Connection.connectTimeout (d:\API\node_modules\tedious\lib\connection.js:634:12)
at ontimeout (timers.js:469:11)
at tryOnTimeout (timers.js:304:5)
at Timer.listOnTimeout (timers.js:264:5)
Run Code Online (Sandbox Code Playgroud)
以下是代码:
module.exports = function (data) {
return new Promise(function (resolve, reject) {
var database = new sql.ConnectionPool({
user: 'sa',
password: 'password',
server: 'Server-100',
database: 'SQLDB',
options: {
encrypt: true, …Run Code Online (Sandbox Code Playgroud) 当我使用mssqlnode.js模块连接到SQL Server时收到错误消息.
[错误:连接到192.168.1.101\sql:1433 - 失败错误:getaddrinfo ENOENT]
var config = {
//driver: 'msnodesql',
user: '...',
password: '...',
server: '192.168.1.101\\sql',
//TCP/IP 127.0.0.1
database: 'ACCOUNTDB'
};
Run Code Online (Sandbox Code Playgroud) tedious当使用包连接到 MSSQL时,我在请求测试中收到以下错误:
'只能在LoggedIn状态下发出请求,不能在SentLogin7WithStandardLogin状态下发出请求',代码:'EINVALIDSTATE'
我的代码(摘自示例:http ://pekim.github.io/tedious/getting-started.html ):
<!-- testDb.js -->
var Connection = require('tedious').Connection;
var config = {
userName: 'xpto',
password: 'pass',
server: 'myserver',
options: { encrypt: true, database: 'dbname' }
};
var connection = new Connection(config);
connection.on('connect', function (err) {
var Request = require('tedious').Request;
request = new Request("select 42, 'hello world'", function (err, rowCount) {
if (err) {
console.log('ERROR');
console.log(err);
} else {
console.log(rowCount + ' rows');
}
});
request.on('row', function (columns) {
columns.forEach(function (column) {
console.log(column.value);
}); …Run Code Online (Sandbox Code Playgroud) 当我运行使用 sequelize 库连接 MSSQL 数据库的节点应用程序时,出现此错误。
我已经尝试在本地和全局手动安装繁琐,但错误仍然存在。
完整的错误堆栈如下:
Error: Please install tedious package manually
at new ConnectionManager (D:\medibookr-api\node_modules\sequelize\lib\dialects\mssql\connection-manager.js:27:15)
at new MssqlDialect (D:\medibookr-api\node_modules\sequelize\lib\dialects\mssql\index.js:14:30)
at new Sequelize (D:\medibookr-api\node_modules\sequelize\lib\sequelize.js:239:20)
at Object.<anonymous> (D:\medibookr-api\models\index.js:30:17)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (D:\medibookr-api\repositories\users.js:4:16)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (D:\medibookr-api\routes\middleware\authenticated.js:3:25)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at …Run Code Online (Sandbox Code Playgroud) tedious ×10
node.js ×9
sql-server ×7
node-mssql ×4
sequelize.js ×3
javascript ×1
npm ×1
permissions ×1
tcp ×1