需要路由中的文件才能运行查询

时间:2017-08-23 17:44:30

标签: mysql node.js express

我试图设置我的路线,然后包含一个运行查询的“内容”文件

declare  @Section TABLE
(
       Section varchar(50) NULL
)
INSERT INTO @Section (Section) VALUES ('BB')
INSERT INTO @Section (Section) VALUES ('1 ')
INSERT INTO @Section (Section) VALUES ('AB 1')
INSERT INTO @Section (Section) VALUES ('A21')
INSERT INTO @Section (Section) VALUES ('B2')
INSERT INTO @Section (Section) VALUES ('A11')
INSERT INTO @Section (Section) VALUES ('B20')
INSERT INTO @Section (Section) VALUES ('B21')
INSERT INTO @Section (Section) VALUES ('AB10')
INSERT INTO @Section (Section) VALUES ('A10')
SELECT Section
FROM @Section

SELECT Section
FROM @Section

ORDER BY Section
--LEFT(Section,PATINDEX('%[0-9]%',Section)-1), -- alphabetical sort
--         CONVERT(INT,SUBSTRING(Section,PATINDEX('%[0-9]%',Section),LEN(Section))) -- numerical sort



SELECT Section  
FROM @Section
ORDER BY LEFT(Section,case when PATINDEX('%[0-9]%',Section) < 1 then 1 else PATINDEX('%[0-9]%',Section) end -1), -- alphabetical sort
         case when PATINDEX('%[0-9]%',Section) < 1 then 0 else CONVERT(INT,SUBSTRING(Section,PATINDEX('%[0-9]%',Section),LEN(Section))) end -- numerical sort


Section
--------------------------------------------------
BB
1 
AB 1
A21
B2
A11
B20
B21
AB10
A10


Section
--------------------------------------------------
BB
1 
A10
A11
A21
AB 1
AB10
B2
B20
B21

然后是参与者档案:

app.get('/participants', function(req, res, next) {
  var participants = require('./content/participants');
});

此处的目标是点击/参与者路线,然后运行选择查询并发送查询结果。

2 个答案:

答案 0 :(得分:0)

您需要将该代码放在导出的函数中,以便您可以使用请求&amp;每次收到请求时都会回复。

这意味着require()在路由处理程序中没有任何意义。

答案 1 :(得分:0)

require()在其他语言中的效果不如source(..)execute。其中的代码仅在首次需要时执行一次。然后缓存模块。

您需要使用module.exports

返回模块文件中的函数和类

要做到这一点:

participants.js

const db = database.connect('olmsdb.1sserver.com', 'campyio');

exports.getParticipants = function() {
   return db.raw('SELECT * FROM participants');
}

app.js

var participants = require('./content/participants');

app.get('/participants', function(req, res, next) {
  participants.getParticipants().then(function(results) {
      res.setHeader('Content-Type', 'application/json');
      res.send(JSON.stringify(results));
      next();
  });
});