vue2 + express创建项目前后端1

vue2 + express创建项目前后端1

1. 创建vue项目

命令行输入 vue init webpack projectName,projectName为要创建的项目的名称,根据需要决定要安装的内容。
在这里插入图片描述
Project name:项目名称 ,不能包含大写字母,如果不需要更改直接回车就可以了。
Project description:项目描述,默认为A Vue.js project,可不用更改。
Author:作者。
Install vue-router? :是否安装vue的路由插件,需要安装则选择Y。
Use ESLint to lint your code? :是否用ESLint来限制你的代码错误和风格,对于个人项目一般不需要检查代码。
setup unit tests with Nightwatch? :是否需要安装单元测试工具Nightwatch。
Setup e2e tests with Nightwatch?:是否安装e2e来进行用户行为模拟测试。
安装成功后的结果,可在项目目录下通过命令npm run dev运行项目。
在这里插入图片描述

2. 配置后端express

2.1 创建后端文件夹back,在back文件夹下执行npm init,然后执行npm install express
2.2 3. 在back文件夹中创建server.js文件,然后编写server.js文件的内容。

// 设置端口
const express = require('express');

const app = express();

// 设置路由
app.get("/",(req,res)=>{
    res.send("hello world!")
})

/*****************************API*****************************/
app.listen(3000,function(){
    console.log("http://127.0.0.1:3000/data");
}); 

//设置允许跨域请求
app.all('*', function(req, res, next) {
    res.header('Access-Control-Allow-Origin', '*'); //访问控制允许来源:所有
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); //访问控制允许报头 X-Requested-With: xhr请求
    res.header('Access-Control-Allow-Metheds', 'PUT, POST, GET, DELETE, OPTIONS'); //访问控制允许方法
    res.header('X-Powered-By', 'nodejs'); //自定义头信息,表示服务端用nodejs
    res.header('Content-Type', 'application/json;charset=utf-8');
    res.setHeader('Cache-Control', 'public, max-age=120');      // 设置强缓存 时间间隔2min
    next();
});

修改完成后,在back目录下执行node server.js或者node server或者npm run start,在浏览器中打开http://127.0.0.1:3000即可见如下页面。
在这里插入图片描述

3 修改vue项目配置

3.1 执行npm install axiosnpm install vue-axios安装axios和vue-axios,在main.js文件中加入以下内容,设置axios.

/*import axios*/
import axios from 'axios'
Vue.prototype.$axios=axios
axios.defaults.baseURL = '/api'
axios.defaults.timeout = 15000;  //超时响应
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8'; // 配置请求头(推荐)
axios.defaults.withCredentials = true;   // axios 默认不发送cookie,需要全局设置true发送cookie
Vue.config.productionTip = false

3.2 在index.js文件中加入一下内容,设置proxy代理。

    proxyTable: {
      //服务器代理
      '/api': {
        target: 'http://127.0.0.1:3000',
        secure: false,
        changeOrigin: true,
        pathRewrite: {
          '^/api': ''
        }
      }

至此,在前端vue中通过axios即可访问后端数据。

例子

  1. 在后端 server.js文件夹中添加路由并保存。
app.get("/dt",(req,res)=>{
    res.send("hello world!")
    res.end()
})
  1. 在HelloWorld.vue组件中修改export default部分(增加了axios获取数据的部分)。
export default {
  name: "HelloWorld",
  data() {
    return {
      msg: "Welcome to Your Vue.js App",
    };
  },
  mounted() {
    this.$axios({
      method: "get",
      url: "/dt"
    }).then((res) => {
        console.log(res.data)
      })
      .catch((reason) => {
        console.log(reason);
      });
  },
};

运行vue项目,可以在控制台中看见如下内容。
在这里插入图片描述

在使用Vue.js作为前端框架,Node.js作为后端服务器,以及MongoDB作为数据库的情况下,实现注册和登录功能通常涉及到以下步骤: 1. **前端Vue.js部分**: - 使用Vue CLI创建Vue项目。 - 设计注册和登录表单界面。 - 使用Axios或Fetch API与后端通信,发送注册和登录请求。 2. **后端Node.js部分**: - 使用Express框架创建RESTful API。 - 使用body-parser中间件解析请求体。 - 使用jsonwebtoken(JWT)进行身份验证。 - 使用Mongoose操作MongoDB数据库,创建用户模型和相关的CRUD接口。 3. **数据库MongoDB部分**: - 设计用户集合的文档结构,通常包含用户名、密码、邮箱等字段。 - 实现用户数据的增删改查操作。 以下是一个简化的代码示例: **前端Vue.js (注册登录组件示例)**: ```javascript // 注册组件 <template> <form @submit.prevent="register"> <!-- 用户名、密码等输入字段 --> <button type="submit">注册</button> </form> </template> <script> export default { methods: { register() { this.axios.post('/api/register', { username: this.username, password: this.password }).then(response => { // 处理响应,例如跳转到登录页面 }).catch(error => { // 处理错误 }); } } }; </script> ``` **后端Node.js (注册接口示例)**: ```javascript const express = require('express'); const bodyParser = require('body-parser'); const mongoose = require('mongoose'); const jwt = require('jsonwebtoken'); const app = express(); app.use(bodyParser.json()); // 连接MongoDB mongoose.connect('mongodb://localhost:27017/mydatabase', { useNewUrlParser: true }); // 用户模型 const UserSchema = new mongoose.Schema({ username: String, password: String, // 其他字段... }); const User = mongoose.model('User', UserSchema); // 注册API app.post('/api/register', (req, res) => { const newUser = new User({ username: req.body.username, password: req.body.password // 实际项目中需要对密码加密处理 }); newUser.save().then(user => { res.status(201).send(user); }).catch(err => { res.status(400).send(err); }); }); app.listen(3000, () => { console.log('Server is running on port 3000'); }); ``` **数据库MongoDB (用户集合结构)**: ```json { "_id": ObjectId("..."), "username": "user1", "password": "hashed_password", // 其他信息... } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值