【发布时间】:2018-01-22 15:56:40
【问题描述】:
我正在尝试使用 node 和 hapi.js 测试与我的 sql 服务器的连接,并在我的一张表上运行一个简单的查询。我对 node 和 Hapi 还很陌生,所以我只是想弄清楚这一点
所以首先我的文件夹结构如下我有一个名为 api 的文件夹,其中有路由,这就是我正在执行路由的地方 get_aosdata.js 这个工作我测试了它只是传回'hello world'然后我有一个api下的查询文件夹这是我在connection.js中设置我的数据库连接的地方
这就是我的路线目前的样子
'use strict';
const query = require('../query/connection');
module.exports = {
method: 'GET',
path: '/api/query/{id}',
config: {
pre: [
{ method: query.getSqlConnection, assign: 'db' }
],
handler: (request, reply) => {
const request = new db.Request();
request.query(`SELECT a.OrdNbr, a.sotypeid, a.user6, a.lupd_datetime, a.user3, a.crtd_user, a.S4Future01, a.slsperid, a.totmerch, a.CustOrdNbr from SOHeader a
join customer b
on a.CustID = b.CustId
join SOLine c
on a.OrdNbr = c.OrdNbr
where sotypeId = 'Q'`, ((err, recordset) => {
if (err) {
console.log(err);
}
reply(recordset);
}));
}
}
}
我正在调用一个先决条件来进行我的连接,这就是这段代码的样子
const sql = require('mssql');
const dbConfig = {
server: 'myserver',
database: 'mydatabase',
user: 'myuser',
password: 'mypassword'
}
const getSqlConnection = (request, reply) => {
sql.connect(dbConfig, ((err) => {
if (err) {
console.log(err);
}
}));
return reply();
}
module.exports = getSqlConnection;
这是我的服务器
'use strict';
const Hapi = require('hapi');
const server = new Hapi.Server();
server.connection({ port: 3001, host: 'localhost' });
server.route(require('./api/routes/get_AOSdata'));
server.start((err) => {
if(err) {
throw err;
}
console.log(`Server running at: ${server.info.uri}`);
});
现在我的错误说位置 0 的 pre 与任何允许的类型都不匹配...我对这个错误一无所知,我无法在任何地方找到修复程序。我正在使用 hapi 和 mssql 进行调用,任何帮助将不胜感激
【问题讨论】:
-
我完全同意你的看法,我只是想快速获取数据以查看我的节点服务器工作
-
我只会使用你自己的回调来返回数据库句柄而不是使用回复,请参阅here 以获取使用 hapijs 连接到 sql 数据库的示例
标签: javascript sql-server node.js hapijs