最近正在使用Vue+Node制作项目,于是决定写一个使用Node.js+Express搭建服

务器的教程

 

步骤:

一 开发前的准备:

1、安装Node.js

     官网下载安装

2、安装Express

    使用npm,指令如下:

npm install -g express-generator

3、对项目进行初始化

目录位置打开命令行

输入 express+项目的名称(这里使用server)

这里会提示:

4、安装依赖

    进入server文件夹调出cmd输入指令:

npm install

5、到此安装完成

主要文件介绍:

  1. routers:路由,用于确定应用如何响应对特定端点客户机的请求,包括一个URI或者路径和一个特定HTTP请求方法(GET/POST),每个路由可以包含一个或者多个处理程序函数,这些函数在路由配置的时候执行
  2. app.js:服务器启动的入口

这个时候我们可以在根目录打开命令行,输入npm start来启动我们的服务器

启动成功后在浏览器输入localhost:3000即可看到:

证明没有问题

二、简单的DEMO

在浏览器访问localhost:3000的时候,调用的是index.js中的接口

创建一个路由的格式:

app.method(path,handler)
//app为express实例

//method: HTTP请求的方式

//path:服务器路径

//handler:路由匹配时执行的函数

创建的Demo:

router.get('/', function(req, res, next) { res.render('index', { title: 'Express' }); });


简单的例子:    代表着:"/" = 对get请求进行响应

目标:实现一个通过get请求参数不同获取不同地区的接口:

步骤:

在users.js中添加一个接口:

router.get('/getCity', (req, res, next) => {
  var params = Url.parse(req.url, true).query;
  let response = {};
  if (params.id === 1) {
    response['cityName'] = "秦皇岛";
  } else { 
    response['cityName'] = "北京";
  }
  res.json(response);
})

因为users在app.js中已经注册,所以重启服务器直接访问:

localhost:3000/users/getCity?id=1

即可获得返回数据

{"cityName":"北京"}

三、实战-连接数据库

步骤:

一、战前准备:

    1、安装mysql模块:

打开server文件夹下的package.json在dependencies中添加:

"mysql":"latest"

然后打开cmd,执行以下npm:

npm install 安装mysql

npm start

二、开始

    1、新建database文件夹,用于存放我们mysql的配置信息

    2、在database目录中新建DBConfig.js文件,写入:

module.exports = { 
    mysql: { 
      host: '127.0.0.1', 
      user: 'root', 
      password: '密码', 
      database: '数据库名', 
      post: 3306 
    } 
}

    3、添加API接口用来调用sql语句

    在database中写入querysql.js并写入:

var UserSQL = {
   query:'SELECT * FROM 表名'
}

    4、在routers目录添加一个users.js来发送操作数据库的API

    这个例子添加一个query接口,在users.js写入:

var express = require('express');
var router = express.Router();
//引入mysql模块
var mysql = require("mysql");
//引入文件
var dbConfig = require('./database/DBConfig'); 
//使用DBConfig中配置信息创建一个MySQL连接池
var pool = mysql.createPool(dbConfig.mysql);
//响应JSON数据
var responseJSON = function (res, ret) {
  if (typeof ret == 'undefined') {
    res.json({
      code: "-200",
      msg: "操作失败"
    });
  } else {
    res.json(ret);
  }
};
//进行查询
router.get('/query', function (req, res, next) {
  pool.getConnection(function (err, connection) {
    var params = req.query || req.params; //前端传的参数(暂时写这里,在这个例子中没用)
    connection.query(qusrySql.UserSQL, function (err, result) {
      //将结果以json形式返回到前台
      responseJSON(res, result);
      //释放链接
      connection.release();
    })
  })
})

这个时候重新启动服务器,浏览器输入localhost:3000/users/query会输出返回的结果

Logo

更多推荐