nodejs实现的高性能服务器编程,使用NodeJS搭建自己的接口服务器,提交APP的开发效率...
之前工作中由于工作量问题,有时候需要等后台的同事写好接口才能联调。最近看了包建强老师的自己搭建服务器模拟数据的方法,忽然感觉发现新大陆一样,之前刚学了一些NodeJS的皮毛,想的自己搭建一个服务器。就是干!
所需要的环境
NodeJS
这里就不介绍怎么安装NodeJS了。
Express (Express中文网)
官方介绍说,Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
搭建Express服务器
参考Express官网的文档就能轻轻松松的搭建,步骤如下:
前提:
已安装好Node.js,使用node -v 查看node的版本
Express安装
Step1: 新建一个项目文件夹
mkdir server
cd server
Step2: 使用npm初始化这个文件夹为Node环境的,初始化以后会生成一个package.json的文件
npm init
Step3: 安装Express框架
Express分为全局环境和临时环境两种方式
全局环境
npm install express --save
临时环境
npm install express
Express框架搭建
前提: Express框架安装完成。
直接下面的命令,让当前的文件夹用于express框架的文件结构
cd server
express
初始化以后安装依赖
npm install
待安装完成后就安装完了express的文件和依赖会在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
文件配置,实现接口
这里我们要看一下app.js,/routes/index.js, /routes/users.js 这几个文件。
app.js
这里主要看
//设置接口的路径和数据
var index = require('./routes/index');
var users = require('./routes/users');
//设置接口的路径和数据
app.use('/', index);
app.use('/users', users);
上面两行代码是引入/routes/index.js和/routes/users.js两个文件,而这两个文件中配置这我们需要的json数据。
下面两行代码是我们访问json数据要用到的路径。我们可以配合和后台同事一样的路径,方便后期联调。
/routes/users.js
index.js和users.js的性质一样,这里以users.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提交数据,那么要使用req.body.*的参数获取字段;
如果使用GET的方式获取数据,那么使用req.query.*的方式获取参数字段;
启动server,获取接口数据,在默认器数据127.0.0.1:3000查看允许的效果。
cd server
npm install
nodejs实现的高性能服务器编程,使用NodeJS搭建自己的接口服务器,提交APP的开发效率...相关推荐
- linux搭建mcpe服务器_技术|如何搭建“我的世界”服务器
我们将通过一个一步步的.新手友好的教程来向你展示如何搭建一个"我的世界(Minecraft)"服务器.这将会是一个长期的多人游戏服务器,你可以与来自世界各地的朋友们一起玩,而不用在 ...
- 制作服务器需要哪些,怎么搭建一个小型企业服务器机房,做这些都需要什么
怎么搭建一个小型企业服务器机房,做这些都需要什么? 通过内部部署IT解决方案来减少在线数据存储的安全问题,甚至完全避免这些问题. 但问题又来了,大多数小型企业只能通过投资专用的内部IT设备来成功实现这 ...
- 以太坊服务器是什么_搭建以太坊节点服务器https API
一.启动RPC 我们在搭建完以太坊私链之后(搭建教程参考前面几篇文章),可以正常启动以太坊,启动RPC的方式有2种: 1.进入到 Geth JavaScript console,启动 #./geth ...
- HLS流媒体服务器对性能要求,搭建hls直播流媒体服务器有什么要求?
HLS的基本原理是,当视频流被推送到流媒体服务器时,服务器将接收到的流信息打包成一个全新的TS文件,即切片文件(三块),服务器建立一个m3u8索引文件来维护全新TS段的索引.当播放机获得直播时,从m3 ...
- 网页gis服务器,在局域网中搭建自己的gis服务器
需求 在客户的B/S应用系统中使用电子地图.该系统只可运行于内部网中. 分析 由于系统中的电子地图只能运行于局域网中所以不能采用google地图等.而且客户项目不大,所以不能购买收费的gis服务器. ...
- 服务器文件描述,服务器编程中的文件描述符
Linux系统下一切皆文件,通过虚拟文件系统(VFS)的机制将所有底层屏蔽掉,用户可以通过统一的接口来实现对不同驱动的操作,对于每一个文件需要一个引用来指示,此时文件描述符应用而生,文件描述符类似于W ...
- 阿里云搭建自己的anki服务器
阿里云搭建自己的anki服务器 @[Toc](阿里云搭建自己的anki服务器) 背景 需要买一台云服务器 云服务器 远程登录 一些准备工作 关于操作系统的适应 我踩的一些坑 搭建过程 打开端口 输入命 ...
- (十二)nodejs循序渐进-高性能游戏服务器框架pomelo之创建一个游戏聊天服务器
上个章节我们简单介绍了下pomelo的安装和目录结构,有读者可能觉得有点吃不消,为什么不再深入讲一讲目录结构和里边的库,这里我就不费口舌了,大家可以去官网参考文档说明,本文只告诉大家如何利用这个框架来 ...
- Nodejs中搭建一个静态Web服务器,通过读取文件获取响应类型
场景 Web服务器一般指网站服务器,是指驻留于因特网上某种类型计算机的程序,可以向浏览器等Web客户端提供文档,也可以放置网站文件让全世界浏览,还可以放置数据文件,让全世界下载.目前最主流的Web服务 ...
最新文章
- rabbitmq 消息队列 多重绑定
- (译)如何用命令行在windows Azure上安装负载平衡的web Farm虚拟机(linux或其他)...
- 19.7 主动模式和被动模式 19.8 添加监控主机 19.9 添加自定义模板 19.10 处理图形...
- 编译原理之正则表达式
- 智慧显示:5G时代的新机遇
- BZOJ.4553.[HEOI2016TJOI2016]序列(DP 树状数组套线段树/二维线段树(MLE) 动态开点)
- mysql进阶3_MySQL进阶
- IDEA 自动生成 serialVersionUID 的设置
- 子类怎么继承父类方法中的变量_关于继承的那些事!
- 拖动卡顿_教你4招,让你的ps永不卡顿
- CCF201509试题
- 【CS229】代价函数与梯度下降
- Selenium下载PDF文件实战 2021-07-21
- 小米+线刷+android,小米10 Android 11 Beta1刷机包发布,线刷体验,国内首批
- MySQL视图创建与管理(实验五)
- 音频打不开 服务器运行失败,win7系统提示音频服务器未运行的解决方法
- 伊利诺伊理工大学舒凯招收多名全奖博士生
- netty源码分析及优点
- 在Android上修改读取IMEI码的方法
- mac 无法打开22端口 无法远程连接ssh 的解决办法