使用 NodeJS+Express 开发服务端的简单介绍


Posted in NodeJs onApril 07, 2017

随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能。本文不会对NodeJS过多介绍 如果你感兴趣可以访问NodeJS 官网

本文是利用NodeJS+Express开发一个服务器程序,Express 是一种保持最低程度规模的灵活 Node.js Web 应用程序框架,为 Web 和移动应用程序提供一组强大的功能。详见:官网

一 准备工作

首先你需要安装NodeJS环境 这里不再做介绍,

1.安装Express

npm install express -g
npm install express-generator -g

2.初始化项目

cd /Users/SPRINT/Desktop 进入桌面
express 项目名称

项目名称我们指定为APIServer,从项目名称可以看出 我们是模拟服务器API

在这里我们将提供一个获取用户详情接口 并输出JSON数据。

使用 NodeJS+Express 开发服务端的简单介绍

在终端最后位置 看到输出两个命令

install dependencies:
 $ cd APIServer && npm install //告诉我们进入项目根目录 执行npm install安装依赖模块

run the app:
 $ DEBUG=APIServer:* npm start //告诉我们启动服务器

执行如下命令:

1.cd APIServer //进入项目根目录

2.npm install  //安装依赖

我们回到桌面 你将看到一个APIServer目录 我在这里使用Sublime Text打开

使用 NodeJS+Express 开发服务端的简单介绍

/bin:用来启动应用(服务器)

/public: 存放静态资源目录

/routes:路由用于确定应用程序如何响应对特定端点的客户机请求,包含一个 URI(或路径)和一个特定的 HTTP 请求方法(GET、POST 等)。每个路由可以具有一个或多个处理程序函数,这些函数在路由匹配时执行。

/views: 模板文件所在目录 文件格式为.jade

目录app.js程序main文件 这个是服务器启动的入口

二 启动服务器

首先启动服务器

npm start //启动服务器

使用 NodeJS+Express 开发服务端的简单介绍

启动完成后终端将输出 node ./bin/www

在浏览器中访问 http://localhost:3000/

使用 NodeJS+Express 开发服务端的简单介绍

三 基本使用

打开app.js 这里介绍下主要代码

var express = require('express');
 var path = require('path');
 var favicon = require('serve-favicon');
 var logger = require('morgan');
 var cookieParser = require('cookie-parser');
 var bodyParser = require('body-parser');

 var app = express();


///=======路由信息 (接口地址)开始 存放在./routes目录下===========//
 var routes = require('./routes/index');//home page接口
 var users = require('./routes/users'); //用户接口

 app.use('/', routes); //在app中注册routes该接口 
 app.use('/users', users);//在app中注册users接口
///=======路由信息 (接口地址 介绍===========//



///=======模板 开始===========//
// view engine setup
 app.set('views', path.join(__dirname, 'views'));
 app.set('view engine', 'jade');
///=======模板 结束===========//

当我们在浏览器中 访问 http://localhost:3000/ 调用的就是index中的接口

我们打开index.js就可以看到该接口的定义:

var express = require('express');
var router = express.Router();


//定义一个get请求 path为根目录
/* GET home page. */
router.get('/', function(req, res, next) {
 res.render('index', { title: 'Express' });
});

module.exports = router;

定义一个路由的基本格式为:

app.METHOD(PATH, HANDLER)

其中:

app 是 express 的实例。

METHOD是 HTTP 请求方法。

PATH 是服务器上的路径。

HANDLER 是在路由匹配时执行的函数。

以上的定义代表
在根路由 (/) 上(应用程序的主页)对 GET 请求进行响应:

是不是明白了?

如果我们想要实现一个获取用户信息接口该怎么写呢?

很简单在 routes目录下创建一个user.js文件内容如下:

定义一个User模型

function User() {
  this.name;
  this.city;
  this.age;
}
module.exports = User;

使用 NodeJS+Express 开发服务端的简单介绍

切换到users.js文件

在文件顶部添加

var URL = require('url');

并继续添加如下内容:

router.get('/getUserInfo', function(req, res, next) {

 var user = new User();
 var params = URL.parse(req.url, true).query;

 if(params.id == '1') {

 user.name = "ligh";
 user.age = "1";
 user.city = "北京市";

}else{ 
 user.name = "SPTING";
 user.age = "1";
 user.city = "杭州市";
}

 var response = {status:1,data:user};
 res.send(JSON.stringify(response));

});

解释下重点:

获取url参数 依赖于url模块 使用前需要使用  require('url')

var params = URL.parse(req.url, true).query;

使用 NodeJS+Express 开发服务端的简单介绍

由于users.js路由信息已经在app.js注册

停止服务器 重新start服务器即可直接访问

调用方式

http://localhost:3000/users/getUserInfo?id=1
或者
http://localhost:3000/users/getUserInfo?id=2

使用 NodeJS+Express 开发服务端的简单介绍

你是不是注意到我们访问的方式为users/getUserInfo?id=1 而不是基于根

原因是我们在app.js注册方式为app.use('/users', users);

我们可以利用这种方式 开发模块功能 比如 你有另外一个模块为msg

我们注册为:app.use('/msgs', msgs);

调用方式为http://localhost:3000/msgs/getUserMsgs?id=1

这里我们写死了返回数据 并没有查询数据库

当然NodeJS具备访问mysql的能力 但不是本篇文章的介绍范围,可以参考此篇文章:https://3water.com/article/110616.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
NodeJs中的VM模块详解
May 06 NodeJs
使用Angular和Nodejs、socket.io搭建聊天室及多人聊天室
Aug 21 NodeJs
nodejs修复ipa处理过的png图片
Feb 17 NodeJs
NodeJS的Promise的用法解析
May 05 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
nodejs连接mysql数据库及基本知识点详解
Mar 20 NodeJs
nodejs搭建本地服务器轻松解决跨域问题
Mar 21 NodeJs
nodejs中方法和模块用法示例
Dec 24 NodeJs
nodejs基础之buffer缓冲区用法分析
Dec 26 NodeJs
nodejs中实现用户注册路由功能
May 20 NodeJs
nodejs简单抓包工具使用详解
Aug 23 NodeJs
ubuntu系统下使用pm2设置nodejs开机自启动的方法
May 12 NodeJs
初识NodeJS服务端开发入门(Express+MySQL)
Apr 07 #NodeJs
nodejs服务搭建教程 nodejs访问本地站点文件
Apr 07 #NodeJs
nodejs爬虫遇到的乱码问题汇总
Apr 07 #NodeJs
详解nodejs爬虫程序解决gbk等中文编码问题
Apr 06 #NodeJs
NodeJS基础API搭建服务器详细过程记录
Apr 01 #NodeJs
Ajax异步文件上传与NodeJS express服务端处理
Apr 01 #NodeJs
3分钟快速搭建nodejs本地服务器方法运行测试html/js
Apr 01 #NodeJs
You might like
怎样在PHP中通过ADO调用Asscess数据库和COM程序
2006/10/09 PHP
php汉字转拼音的示例
2014/02/27 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
php删除一个路径下的所有文件夹和文件的方法
2018/02/07 PHP
可以支持多中格式的JS键盘
2007/05/02 Javascript
JavaScript RegExp方法获取地址栏参数(面向对象)
2009/03/10 Javascript
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
javascript oop开发滑动(slide)菜单控件
2010/08/25 Javascript
解决jquery1.9不支持browser对象的问题
2013/11/13 Javascript
用js一次改变多个input的readonly属性值的方法
2014/06/11 Javascript
js中javascript:void(0) 真正含义
2020/11/05 Javascript
jquery实现仿新浪微博带动画效果弹出层代码(可关闭、可拖动)
2015/10/12 Javascript
javascript实现查找数组中最大值方法汇总
2016/02/13 Javascript
JavaScript实战之菜单特效
2016/08/16 Javascript
Vue.js基础知识小结
2017/01/13 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
详解angular2.x创建项目入门指令
2018/10/11 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
localStorage 设置过期时间的方法实现
2018/12/21 HTML / CSS
html5本地存储 localStorage操作使用详解
2016/09/20 HTML / CSS
美国在线眼镜商城:Eyeglasses.com
2017/06/26 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
酒店仓管员岗位职责
2014/04/28 职场文书
环保标语大全
2014/06/12 职场文书
小学网上祭英烈活动总结
2014/07/05 职场文书
员工年终考核评语
2014/12/31 职场文书
心术观后感
2015/06/11 职场文书
五星级酒店宣传口号
2015/12/25 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
祝福语集锦:送给闺蜜的生日祝福语
2019/10/08 职场文书
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏