nodejs实现的高性能服务器编程,使用NodeJS搭建自己的接口服务器,提交APP的开发效率...
之前工作中由于工作量問題,有時(shí)候需要等后臺(tái)的同事寫好接口才能聯(lián)調(diào)。最近看了包建強(qiáng)老師的自己搭建服務(wù)器模擬數(shù)據(jù)的方法,忽然感覺發(fā)現(xiàn)新大陸一樣,之前剛學(xué)了一些NodeJS的皮毛,想的自己搭建一個(gè)服務(wù)器。就是干!
所需要的環(huán)境
NodeJS
這里就不介紹怎么安裝NodeJS了。
Express (Express中文網(wǎng))
官方介紹說,Express 是一個(gè)基于 Node.js 平臺(tái)的極簡(jiǎn)、靈活的 web 應(yīng)用開發(fā)框架,它提供一系列強(qiáng)大的特性,幫助你創(chuàng)建各種 Web 和移動(dòng)設(shè)備應(yīng)用。
搭建Express服務(wù)器
參考Express官網(wǎng)的文檔就能輕輕松松的搭建,步驟如下:
前提:
已安裝好Node.js,使用node -v 查看node的版本
Express安裝
Step1: 新建一個(gè)項(xiàng)目文件夾
mkdir server
cd server
Step2: 使用npm初始化這個(gè)文件夾為Node環(huán)境的,初始化以后會(huì)生成一個(gè)package.json的文件
npm init
Step3: 安裝Express框架
Express分為全局環(huán)境和臨時(shí)環(huán)境兩種方式
全局環(huán)境
npm install express --save
臨時(shí)環(huán)境
npm install express
Express框架搭建
前提: Express框架安裝完成。
直接下面的命令,讓當(dāng)前的文件夾用于express框架的文件結(jié)構(gòu)
cd server
express
初始化以后安裝依賴
npm install
待安裝完成后就安裝完了express的文件和依賴會(huì)在server文件夾下生成如下文件
.
├── app.js
├── bin
│ └── www
├── package.json
├── public
│ ├── images
│ ├── javascripts
│ └── stylesheets
│ └── style.css
├── routes
│ ├── index.js
│ └── users.js
└── views
├── error.jade
├── index.jade
└── layout.jade
文件配置,實(shí)現(xiàn)接口
這里我們要看一下app.js,/routes/index.js, /routes/users.js 這幾個(gè)文件。
app.js
這里主要看
//設(shè)置接口的路徑和數(shù)據(jù)
var index = require('./routes/index');
var users = require('./routes/users');
//設(shè)置接口的路徑和數(shù)據(jù)
app.use('/', index);
app.use('/users', users);
上面兩行代碼是引入/routes/index.js和/routes/users.js兩個(gè)文件,而這兩個(gè)文件中配置這我們需要的json數(shù)據(jù)。
下面兩行代碼是我們?cè)L問json數(shù)據(jù)要用到的路徑。我們可以配合和后臺(tái)同事一樣的路徑,方便后期聯(lián)調(diào)。
/routes/users.js
index.js和users.js的性質(zhì)一樣,這里以u(píng)sers.js講解。
var express = require('express');
var router = express.Router();
/* GET users listing. */
router.get('/', function(req, res, next) {
var json='{"accountid":"","data":{"picurl":"https://b-ssl.duitang.com/uploads/item/201409/07/20140907232842_SEJCX.jpeg","url":"http://www.jianshu.com"},"errorCode":"0000","msg":"","token":""}';
res.send(json);
});
/* 獲取新聞列表*/
router.get('/getnews', function(req, res, next) {
connection.query(
'SELECT * FROM `news`',
function(err,rows){
res.json(rows);
}
);
});
/*獲取要修改的news*/
router.get('/curnews',function(req,res){
var newsid=req.query.newsid;
connection.query(
'SELECT * FROM `news` WHERE id=?',
[newsid],
function(err,rows,fileds){
res.json(rows);
}
);
});
/*刪除新聞*/
router.post('/delnews',function(req,res){
var newsid=req.body.newsid;
connection.query(
'DELETE FROM `news` WHERE `id`=?',
[newsid],
function(err,result){
console.log(result.affectedRows);
res.json(result);
}
);
});
/*修改新聞*/
router.post('/update',function(req,res){
var newsid=req.body.newsid;
var newstitle=req.body.newstitle;
var newstype=req.body.newstype;
var newsimg=req.body.newsimg;
var newstime=req.body.newstime;
var newssrc=req.body.newssrc;
connection.query(
'UPDATE `news` SET `newstype`=?,`newstitle`=?,`newsimg`=?,`newstime`=?,`newssrc`=? WHERE `id`=?',
[xss(newstype),xss(newstitle),xss(newsimg),xss(newstime),xss(newssrc),newsid],
function(err,rows){
console.log("rows-------------"+rows);
res.json(rows.changedRows);
}
);
});
/*添加新聞*/
router.post('/insert',function(req,res){
var newstitle=req.body.newstitle;
var newstype=req.body.newstype;
var newsimg=req.body.newsimg;
var newstime=req.body.newstime;
var newssrc=req.body.newssrc;
connection.query(
'INSERT INTO `news` (`newstype`,`newstitle`,`newsimg`,`newstime`,`newssrc`) VALUES (?,?,?,?,?)',
[xss(newstype),xss(newstitle),xss(newsimg),xss(newstime),xss(newssrc)],
function(err,result){
if(!err){
console.log(result.insertId);
res.json(result)
}
}
);
});
module.exports = router;
這里需要注意的是
如果使用POST提交數(shù)據(jù),那么要使用req.body.*的參數(shù)獲取字段;
如果使用GET的方式獲取數(shù)據(jù),那么使用req.query.*的方式獲取參數(shù)字段;
啟動(dòng)server,獲取接口數(shù)據(jù),在默認(rèn)器數(shù)據(jù)127.0.0.1:3000查看允許的效果。
cd server
npm install
總結(jié)
以上是生活随笔為你收集整理的nodejs实现的高性能服务器编程,使用NodeJS搭建自己的接口服务器,提交APP的开发效率...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 服务器怎么虚拟化内存,服务器虚拟化内存大
- 下一篇: markdown 流程图js_科学网—让