使用node来搭建简单的后台业务

  现在作为一个前端开发人员,越来越多的技术需要学习,近几天学习了下node.js,在很多前端以及后端应用了该技术,现在记录下自己摸索的一些简单的知识记录下来。

  我的博客都是直接分享应用方法,没有说明一些底层原理和具体的细节,毕竟低端程序员,相信很多刚入行的小伙伴,也是急于完成任务,学会他的使用方法即可。在这里我就不叙述node的基本的下包登方法了,这里就当你们都已经下载node.js(新版的node包含了npm),安装了淘宝镜像。

  • 下载express,这里我们使用express来搭建服务,结合数据库来完成完整的前后端业务,如果你喜欢原生的方法,可以自行百度或者看官方文档
  • cnpm i express -g
    cnpm i mysql --save -dev
    cnpm i body-parser --save -dev

     

  • 为了方便大家进行理解,在这里我就不把文件进行分开,采用中间件的形式来编写了,新建一个文件作为启动的入口文件,这里我设置为app.js
  • var express = require('express');   //引入express
    var app = express();   //注册成app(这里我们也可以应用路由中间件 var router = express.Router(),接着在写接口时,将app替换为router)
    var bodyParser = require('body-parser'); //引入插件包,解决post请求参数问题
    app.use(bodyParser.json());
    app.use(bodyParser.urlencoded({
        extended: true
    }));
    var mysql = require('mysql'); //引入数据库插件包
    var connection = mysql.createConnection({ //填写数据库的信息
        host: 'localhost', //域名
        user: 'root', //用户
        password: '',   //密码
        database: 'node_test',   //数据库的名称
    });
    
    connection.connect();  //连接数据库(在这里的操作和php类似,学过php的朋友应该很简单)
    
    //设置跨域访问
    app.all('*', function (req, res, next) {   //设置全局的全域问题,我这里是把所有的全部允许了,如果不怕麻烦或者业务需求,你也可以在请求里面写对应的跨域问题
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "X-Requested-With");
        res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
        res.header("X-Powered-By", ' 3.2.1');
        res.header("Content-Type", "application/json;charset=utf-8");
        next();
    });
    
    //查询接口
    app.get('/weblist', function (req, res) {
        var sql = "select * from webList" //写对应的你需要操作的sql语句,无外乎就是增删查改这些,当然复杂点的可能还有多表联查登,可以查看mysql数据库的知识学习
        connection.query(sql, function (error, result, fields) { //执行mysql语句,访问数据库
            res.send(result)//将结果返回(这里的数据我们可以进行响应的判断和包装返回给前端,以便于前端业务的进行,当然req,res对应着许多的方法,也不一一叙述了)
        })
    });
    
    //新增接口
    app.post('/addWeblist', function (req, res) {
        var addSql = 'insert into webList(id,name,url,del) VALUES(0,?,?,?)'; //这里是一个新增的sql语句,应用一定的参数用法,具体看文档解决
        var addSqlParams = [`${req.body.name}`, `${req.body.url}`, 1];   //post的请求,我们通过req.body来获取到他的具体传递的参数
        connection.query(addSql, addSqlParams, function (error, result, fields) {
            res.writeHead(200, {
                'Content-Type': 'text/plain; charset=utf-8'   //可以设置响应的状态,格式等,根据需求来设置
            });
            res.send(result)
        })
    });
    
    //配置服务端口
    app.listen(3000) //监听服务端口

     

  • 接下来我们可以在前端访问我们的接口,需要填写完整的域名和端口,并启动我们的弄得后台服务
  • node app.js  //启动后台node

     

  • 这里以jq的ajax请求为例子
  • $('#btn').click(function () {
                var name = $('#name').val();
                var url = $('#url').val();
                $.ajax({
                    type: 'post',
                    url:'http://localhost:3000/addWeblist',
                    data:{
                        name,url
                    },
                    success:function(data){
    
                    },
                    error:function(){
                        console.log('error')
                    }
                })
            });

     

  • 这里仅供大家学习最基本的服务怎么写,存在着非常多的问题!在之后的博客中,在给大家叙述具体的业务中怎么来模块化的进行,以及应用脚手架来搭建一个简单的后台应用
posted @ 2018-09-06 10:27  x~y  阅读(3071)  评论(0编辑  收藏  举报