【发布时间】:2019-10-28 16:06:55
【问题描述】:
我是 mssql 的新手,在我将它部署到我的开发环境时遇到错误,但在本地它只适用于特定查询它不起作用
这是我的代码
return Order.query()
.joinEager('[shipments.shipmentQuantities.lineItem, lineItems.shipmentQuantities]')
.findById(id);
使用版本 10 和反对 1.4.0 的 nodejs
这是我的连接文件
database: {
client: 'mssql',
connection: {
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
charset: 'utf8',
stream: true,
options: process.env.ENABLE_DB_SSL ? {
port: 1433,
database: process.env.DB_NAME,
encrypt: true,
} : undefined,
},
debug: false,
},
错误详情
RequestError: Connection lost - read ECONNRESET
at handleError (/src/node_modules/mssql/lib/tedious.js:519:15)
at Connection.emit (events.js:203:15)
at Connection.socketError (/src/node_modules/tedious/lib/connection.js:1028:14)
at Socket.<anonymous> (/src/node_modules/tedious/lib/connection.js:878:18)
at Socket.emit (events.js:203:15)
at emitErrorNT (internal/streams/destroy.js:91:8)
at emitErrorAndCloseNT (internal/streams/destroy.js:59:3)
at process._tickCallback (internal/process/next_tick.js:63:19)
对于初始数据库设置,我使用的是 knex 这是初始代码
import body = require('koa-body');
import compress = require('koa-compress');
import Objection = require('objection');
import errorHandler = require('koa-json-logger-next');
import responseTime from 'koa-response-time-next/lib';
import config from './configuration';
import * as Koa from 'koa';
const Model = Objection.Model;
export default class Config {
constructor(private app: Koa) {
this.app = app;
}
public build() {
// db setup
const knex = require('knex')(config.database);
Model.knex(knex);
this.app.use((ctx: Koa.Context, next: () => Promise<any>) => {
ctx.knex = knex;
return next();
});
// return response time in X-Response-Time header
this.app.use(responseTime());
// HTTP compression
this.app.use(compress({}));
// parse request body into ctx.request.body
this.app.use(body());
// Global Error handling
this.app.use(errorHandler({
// As this is behind the api gateway, surface errors
surfaceErrors: true,
}));
return config;
}
}
【问题讨论】:
-
您能否与
SQL server management studio或任何其他工具连接到给定的配置?另外,检查所有环境变量是否正确填充? -
是的,我能够与 SQL Server Management Studio 连接......而且我只是在此查询命中开发时遇到问题
-
你的开发者是 azure 吗?
-
是的开发环境是在天蓝色
-
如果 DB 也在 Azure 上,请确保 encrypt 属性为真
标签: node.js sql-server azure-sql-database knex.js objection.js