Mac下配置Node.js开发环境、express安装、sequelize的初始用、ajax数据交互

一、配置Node.js开发环境、express安装、ajax数据交互

下载node和npm或cnpm

这里就不演示如何下载了,具体可以看我上一篇的博客:https://mp.csdn.net/mdeditor/90038900#

配置Node.js开发环境、express安装

1、安装express框架

sudo npm install -g express

如果是window系统则不用加sudo

2、安装express命令工具

sudo npm install -g express-generator

3、生成express框架

express -e myexpress

4、安装依赖

cd myexpress
cnpm i

5、启动服务器

node ./bin/www

然后打开浏览器,访问http://localhost:3000

如果出现Welcome to Express说明Express已经成功生成

ajax数据的简单交互

6、在public目录下创建一个index.html文件

因为生成的express默认路径就是去到public下面的index.html文件,后续会发怎样修改默认路径的博客

7、在routs目录下的index.js写个接口

router.post('/test',function (req,res,next) {
  var aa = 100;
  res.writeHead(200, { 'Content-Type': 'application/json' })
  res.end(JSON.stringify(aa))
})

8、在index.html下写个请求接口

<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script type="text/javascript">
        $.ajax({
            url:'/test',
            method:'post',
            contentType:"application/json;charest=utf-8",
            dataType:"json",
            success:function (data) {
                data += 10;
                console.log(data);
            }
        });
    </script>

重新跑下服务器,完成~
在这里插入图片描述

sequelize的初使用

安装

使用npm安装

前提:需要安装node


npm install --save sequelize

npm install --save mysql2 

我用的数据库是mysql,可以根据需要进行安装

后台建立步骤

①连接数据库(config)–>②建立表与增删改查语句(model)–>③执行操作(routes
在这里插入图片描述

1、在config下连接数据库

var Sequelize = require("sequelize");

/**
 * 连接指定类型的数据库
 * host:数据库地址
 * max:连接池最大连接数量
 * min:连接池最小连接数量
 * idle:每个线程最长等待时间
 * @type {Sequelize}
 */
module.exports = new Sequelize('test1', 'root', 'root', {
    host: 'localhost',
    dialect: 'mysql',
    pool: {
        max: 5,
        min: 0,
        idle: 10000
    }
});

2、在model下建表与数据库语句

var Sequelize = require("sequelize");
var db = require("../config/db");

var User = db.define('user', {    //建user表
    id: {
        type: Sequelize.INTEGER,
        primaryKey: true,     //主键
        autoIncrement: true   //自增
    },
    email: { type: Sequelize.STRING },
    mobile: { type: Sequelize.STRING,unique:true },
    password: { type: Sequelize.TEXT('long') },
    create_time: { type: Sequelize.DATE }
}, {
    freezeTableName: true,//是否在数据库中创建复数表名,例如 users
    timestamps: false//是否在数据库中创建 createAt 和 updateAt 字段
});

// 创建表,force 为 true 时会先执行 drop 再创建
var user = User.sync({ alert: true });

exports.addUser = function (email, mobile, password) {   //新增数据
    return User.create({
        email: email,
        mobile: mobile,
        password: password
    })
};
exports.findUserByName = function (email) {    //查找数据
    return User.findOne({
        where: {
            username: email
        }
    })
};



exports.updateInformation = function (id, Hportrait, name,company,address) {  //更改数据
    var pram = {
        Hportrait: Hportrait,
        name: name,
        company: company,
        address: address,
    };

    return User.update(
        pram,{
            where:{id:id}
        }
    );
};
//删除数据
User.destroy({
    where:{
        name:{
            $like:'Zhang%'
        }
    }
}).then(function(result){
        console.log('destroy user');
        console.log(result);
});

3、在routes下执行操作

var express = require('express');
var fs = require('fs');
var path = require("path")
var formidable = require('formidable');
var router = express.Router();
var user = require('../model/user');
// var information = require('../model/information');

router.get('/getUser', function (req, res, next) {
    var reqArg = req.query;
    res.header("Content-Type", "application/json; charset=utf-8");//改变编码,才不会出现乱码
    user.findUserByName(reqArg.name).then(function (user) {  //调用user表方法
        var json = {
            statusCode: 1,
            data: user
        }
        res.end(JSON.stringify(json));
    })
});

使用sequelize框架的最大好处就是操作简单,数据库建错字段也容易修改

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值