nodejs通过express实现restful接口

已被阅读 1601 次 | 文章分类:nodejs | 2018-11-26 22:52

作为一个Javascript前端开发者,在全栈开发的路上,可以选择java、c#开发后台接口;但是目前nodejs如此之火,可以继续使用javascript利用nodejs技术栈开发后台,绝对如虎添翼;本节就是用nodejs web开发框架老大哥express带你认识restful

一:简单认识实现流程

1. 首先有一个简单工程,也就是目录结构嘛,新建一个文件夹,然后在根目录执行下面命令;推荐使用vscode编辑器;小编使用两年了,感觉真心不错

                                            
npm init        // 初始化一个package.json文件,注意name只能英文小写
npm install --save express  // 安装express 框架
                                            
                                        

2. 新建demo.js,键入如下代码

                                            
// 引入express模块 commonjs规范引入
const express = require('express')
// 实例化 express
const app = express()
// 定义要返回的值,后面可以从数据库查询返回
let json = {
  code: 200,
  msg: '请求成功',
  data: {
      userId: '123456',
      name: 'xiaobai',
      blog: 'http://www.xiaobaigis.com'
  }
}
// 定义接口类型以及地址
app.get("/api/getdata", function (req, res) {
  res.send(json)
})
// 启动服务器
app.listen(5438, function () {
  console.log("启动服务 http://localhost:5438 ")
})

                                            
                                        

3. 在根目录打开命令窗口,如果是vscode新建终端即可;输入node demo.js,进行测试

                                            
可以用专业接口测试工具fiddler、postman等,都一样好实用;后面会有涉及到,这里着重在认识restful接口
                                            
                                        

/net/upload/image/20181125/6367875224854985753305457.png

4. 修改默认状态,查询成功的默认状态是200,如下

/net/upload/image/20181125/6367875270358785875425552.png

可自定义返回状态值,一般使用默认值,只有在接口出错时,后台可以任意规定4开头或者5开头的代码

                                            
res.status(201);
                                            
                                        

/net/upload/image/20181125/6367875313715950756531432.png

二:从数据库查询

上面定义了返回的json数据,现在从数据库读取并将其返回;这里以MySQL数据库为例;(数据库配置和sql语句建议以模块单独编写,方便维护,此处为demo简便放在一起,不赞成)

1. 需要再安装一个模块:mysql;如果是其他数据库则安装相应模块即可

                                            
npm install --save mysql
                                            
                                        

2. 代码如下,实现流程和上面一样,引入mysql模块,连接数据库,查询数据,再返回数据;

                                            
const express = require('express')
const app = express()
const mysql = require('mysql');
 
const db_conf={
    mysql:{
        host: 'localhost',
        user: 'root',
        password: '123456',
        database: 'user_db'
    } 
} ;
let connection = mysql.createConnection(db_conf.mysql);
connection.connect(function(err){
    if(err){
      console.log('Database connection error');
    }else{
      console.log('Database connection successful');
    }
  });
  
app.get('/api/getusers',function (req, res) {
    connection.query('select * from user', function (error, results) {
        if (error) {
            throw error;
        }else{
            res.send(results);
        }        
    })
});
app.listen(5438, function () {
    console.log("启动服务 http://localhost:5438 ")
})
                                            
                                        

/net/upload/image/20181125/6367875565692702956727702.png

QQ:3410192267 | 技术支持 微信:popstarqqsmall

Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号