sql-server – 如何在Express 4 Web应用程序中跨多个路由使用单
发布时间:2020-12-12 16:29:36 所属栏目:MsSql教程 来源:网络整理
导读:我想在Node JS Express 4 Web应用程序中使用 node-mssql作为MSSQL数据库连接器.路由处理程序逻辑在单独的文件中处理. 如何创建单个/全局连接池并将其用于处理路由逻辑的多个文件?我不想在每个路由处理函数/文件中创建一个新的连接池. 解决方法 实际上我问这
我想在Node JS Express 4 Web应用程序中使用
node-mssql作为MSSQL数据库连接器.路由处理程序逻辑在单独的文件中处理.
如何创建单个/全局连接池并将其用于处理路由逻辑的多个文件?我不想在每个路由处理函数/文件中创建一个新的连接池. 解决方法实际上我问这个问题是自己回答的,因为我相信我有一个值得分享的答案,而我在其他地方找不到文件化的解决方案.另外在几个问题( #118,#164,#165)在node-mssql中讨论了这个话题.这是我的解决方案: 在server.js中 var express = require('express'); var sql = require('mssql'); var config = {/*...*/}; //instantiate a connection pool var cp = new sql.Connection(config); //cp = connection pool //require route handlers and use the same connection pool everywhere var set1 = require('./routes/set1')(cp); var set2 = require('./routes/set2')(cp); //generic express stuff var app = express(); //... app.get('/path1',set1.get); app.get('/path2',set2.get); //connect the pool and start the web server when done cp.connect().then(function() { console.log('Connection pool open for duty'); var server = app.listen(3000,function () { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s',host,port); }); }).catch(function(err) { console.error('Error creating connection pool',err); }); 在routes / set1.js var sql = require('mssql'); module.exports = function(cp) { var me = { get: function(req,res,next) { var request = new sql.Request(cp); request.query('select * from test',function(err,recordset) { if (err) { console.error(err); res.status(500).send(err.message); return; } res.status(200).json(recordset); }); } }; return me; }; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |