前两天公司的有个前端项目需要访问数据库取一些产品数据的信息,然后我用nodejs写了一个简单的数据接口提供,数据库是sql server的,请求方式是get含参数
const express=require('express');
const app=express();
var sql = require('mssql');
const superAgent=require('superagent');
app.get('/api/size_info',function(req,res){
res.header("Content-Type", "text/html; charset=utf-8");
var name = req.query.goods;
console.log(name);
if(name.length==0){res.end('请输入款号')}
else if (name.length > 12){res.send('请输入正常的款号')}
else{
sql.connect("mssql://用户名:密码@IP地址:7477/数据库名称").then(function() {
// Query
new sql.Request().query('select * from view_size_info where 款号=' + name,function(err,data) {
if(err){var result = {
"status": "500",
"message": "服务器错误"
}
console.log(err);
return res.jsonp(result);
}
else{
var result = {
"status": "200",
"message": "success",
"data":data.recordset
}
return res.jsonp(result);
}
})
})
}
});
app.listen(10000,function(){
console.log('api listening on 10000')
})
用命令行运行js文件
node api.js
但是关掉这个命令窗口的话,接口就停止了,
使用forever模块来将程序设置为后台运行,
全局安装forever
npm --registry https://registry.npm.taobao.org install -g forever
安装完成之后,简单启动
forever start api.js
也可以指定输出日志,错误日志
forever start -o out.log -e err.log api.js
显示所有运行的服务
forever list
将nodejs程序做成windows服务,自动启动
1. 全局安装node-windows的库
npm i -g node-windows
2. 在项目中新建一个安装文件api.js
let Service = require('node-windows').Service;
let svc = new Service({
name: 'api_server', //服务名称
description: '简单的接口服务', //描述
script: 'D:/node/api_server.js' //nodejs项目要启动的文件路径
});
svc.on('install', () => {
svc.start();
});
svc.install();
3. 在项目中新建一个卸载文件api-uninstall.js
let Service = require('node-windows').Service;
let svc = new Service({
name: 'api_server', //服务名称
description: '简单的接口服务', //描述
script: 'D:/node/api_server.js' //nodejs项目要启动的文件路径
});
svc.on('uninstall',function(){
console.log('Uninstall success');
console.log('The service exists: ',svc.exists);
});
svc.uninstall();
4. 执行命令
node api.js //安装服务
node api-uninstall.js //卸载服务