zoukankan      html  css  js  c++  java
  • 使用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')
                      }
                  })
              });
    • 这里仅供大家学习最基本的服务怎么写,存在着非常多的问题!在之后的博客中,在给大家叙述具体的业务中怎么来模块化的进行,以及应用脚手架来搭建一个简单的后台应用
  • 相关阅读:
    docker应用部署
    Netty实现WebSocket通信
    spring-mvc框架简单搭建
    spring-tx 事物
    spring注解及简单实用
    Spring Aop实现简单代码实现
    Jedis操作
    Proxy说明
    下载返回流
    向上捅破天,向下扎到根
  • 原文地址:https://www.cnblogs.com/xieyong25/p/9596832.html
Copyright © 2011-2022 走看看