1.初始化node 项目

2.安装需要部件

3.编写简单代码

routers=>:index.js  login.js  users.js

根目录 index.js

var express=require('express');
var app=express();
var consign=require('consign');
var bodyparser = require('body-parser'); app.use(bodyparser.urlencoded({extende:true}));
app.use(bodyparser.json()); //设置跨域
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();
}); consign({verbose: false})
.include("./config.js")
.then("./routers")
.into(app); //配置服务端口 var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port;     console.log('vue api listening at http://%s:%s', host, port);
})

根目录config.js

module.exports ={
users:[
{
username:'admin', pwd:'U2FsdGVkX18RavhpxcS6QkHK1Je08MQf7pmNqF41Mug=',id:1
},
{
username:'test', pwd:'U2FsdGVkX18RavhpxcS6QkHK1Je08MQf7pmNqF41Mug=',id:2
}
],
aeskey:'lin.su',
jwtSecret: "lin.su",
jwtSession: {session: false}
};

routers:index.js

module.exports = app => {
app.get("/", (req, res) => {
res.json({code: "200",msg:'vue 数据接口正常启动'});
});
};

routers:login.js

var jwt = require('jwt-simple');

const tokenExpiresTime = 1000 * 60 * 60 * 24 

module.exports = app => {

var jstSecret=app.config.jwtSecret;
app.post("/login", (req, res) => {
var username=req.body.username;
var upwd=req.body.password;
var result=false;
var uinfo;
for(var i=0;i<app.config.users.length;i++){
if(app.config.users[i].username == username){
result=true;
uinfo=app.config.users[i];
break;
}
}
const payload = {
user:uinfo.username,
environment:'web',
expires: Date.now() + tokenExpiresTime
};
if(result && uinfo.pwd == upwd){
delete uinfo.pwd;
res.json({
code:200, token: jwt.encode(payload, jstSecret),userinfo:uinfo
});
}
else{
res.json({
code:500,msg: '用户名密码错误'
});
}
});
};

routers:users.js

module.exports = app => {
app.get("/user",(req, res) => {
res.json({code: "200",msg:'success'});
}); app.get("/user/info",(req,res) => {
res.json({code: "200",msg:'success'});
});
app.post("/users", (req, res) => {
var result=req.body;
res.json({code: "200",msg:JSON.stringify(result)});
});
};

4.运行效果

Vue+Iview+Node 搭建数据模拟接口的更多相关文章

  1. Vue+Iview+Node 登录demo

    1.相关组件安装 axios  iview  js-cookie  crypto-js 2.子父组件传值.监听窗体大小改变.记住密码 .自定义组件(事件 .props) created:实例已经创建完 ...

  2. Vue+Iview+Node 项目结构和配置

    1.项目调整后的目录 api:数据接口定义 assets:静态文件 components:组件  config:项目相关配置  driective:指令   router:路由   store:状态管 ...

  3. Vue+Iview+Node 安装环境 运行测试Vue

    1.运行环境及设置 备注:建议设置 npm config set registry https://registry.npm.taobao.org 2.全局安装vue/cli 3.创建vue 项目 v ...

  4. Vue.js 运行环境搭建详解(基于windows的手把手安装教学)及vue、node基础知识普及

    Vue.js 是一套构建用户界面的渐进式框架.他自身不是一个全能框架——只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动 ...

  5. 【强烈推荐,超详细,实操零失误】node.js安装 + npm安装教程 + Vue开发环境搭建

    node.js安装 + npm安装教程 + Vue开发环境搭建 [强烈推荐,超详细,实操零失误] 原博客园地址:https://www.cnblogs.com/goldlong/p/8027997.h ...

  6. Vue + iview框架,搭建项目遇到的相关问题记录 - 国际化router.js不能实现

    例子展示: 概述: 最近在使用vue + iview框架进行web开发,并且有一个需求,需要实现web端的国际化,在完成相关配置文件后,发现router.js 中无法配置,并且会出现异常,在经过百度找 ...

  7. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  8. vue开发环境搭建及热更新

    写这篇博客的目的是让广大的学者在初入Vue项目的时候少走些弯路,虽然现在有很多博客也有差不多的内容,但是博主在里面添加了一些学习时碰到的小问题.在阅读这篇博客之前,我先给大家推荐一篇文章<入门W ...

  9. 四、VueJs 填坑日记之搭建Axios接口请求工具

    上一章,我们认识了项目的目录结构,以及对项目的目录结构做了一些调整,已经能把项目重新跑起来了.今天我们来搭建api接口调用工具Axios.Vue本身是不支持ajax调用的,如果你需要这些功能就需要安装 ...

随机推荐

  1. wall -- 向所有人的终端发送消息

    总览 (SYNOPSIS) wall [ message ] 描述 (DESCRIPTION) Wall 向 所有 登录的 并且 mesg(1) 权限 设为 yes 的 用户 发送 消息. 消息可以 ...

  2. centos 7 中安装Oracle 12c

    今天有需要在centos 7上安装oracle 12 所以上网查了一下安装流程,原贴转自:https://blog.csdn.net/github_39294367/article/details/7 ...

  3. easyui 弹出框调用外部js函数 提示“Microsoft JScript 运行时错误: 缺少对象”

    昨天遇见一个很诡异的问题 我用easyui做了一个网站,其中有一个a页面和一个b页面,我通过easyui的window功能,在a页面中弹出了一个b页面,在b页面中,我用到了一个外部js的函数c,我在b ...

  4. uboot刷机

    ath> tftp xx.zpk Trying eth0 Using eth0 device TFTP from server 192.168.1.104; our IP address is ...

  5. IconFont 图标的3种引用方式

    第一步:进入阿里巴巴矢量图网站:http://www.iconfont.cn/   阿里巴巴矢量图 第二步:搜索你分类的关键字---然后加入购物车,下载到本地,然后解压,会将合并后的字体文件及自动生成 ...

  6. Java标识符&关键字

    1. 标识符&关键字 [标识符]: Java 对各种变量.方法和类等要素命名时使用的字符序列称为标识符. 凡是自己可以起名字的地方都叫标识符 命名规则:(一定要遵守,不遵守就会报编译的错误) ...

  7. LeakCanary 与 鹅场Matrix ResourceCanary对比分析

    推荐阅读: 滴滴Booster移动App质量优化框架-学习之旅 一 Android 模块Api化演练 不一样视角的Glide剖析(一) LeakCanary是Square公司基于MAT开源的一个内存泄 ...

  8. 给标签设置disabled属性后提交不了数据

    项目中遇到给select标签添加disabled属性然后提交表单的时候不能提交该表单的数据到后台, readonly属性对提交数据没有限制,但是readonly属性对radio.select.chec ...

  9. 解决php-fpm占用cpu memory过高,开启php-fpm request_slowlog_timeout

    项目刚从win下挪到linux下,发现cpu过高,内存也占用较多,以下是我解决问题的过程: 首先更改php-fpm配置 vim /usr/local/php/etc/php-fpm.conf 找到 r ...

  10. Mybatis笔记 - Mapper动态代理

    使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法. Mapper接口开发方式是基于入门程序的基础上,对 控制程序 进行分层开发,程序员只需要 编写mappe ...