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项目,可以在控制台中看见如下内容。
在这里插入图片描述

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现前后分离的邮箱注册需要以下步骤: 1. 在前项目创建注册页面,包括邮箱输入框和提交按钮: ```html <template> <div> <label for="email">邮箱:</label> <input type="email" id="email" v-model="email"> <button @click="submit">提交</button> </div> </template> ``` 2. 在前项目中使用 axios 库发送请求到后接口: ```javascript import axios from 'axios'; export default { data() { return { email: '' } }, methods: { submit() { axios.post('http://localhost:3000/api/register', { email: this.email }) .then(response => { // 处理注册成功逻辑 }) .catch(error => { // 处理注册失败逻辑 }); } } } ``` 3. 在后项目创建注册接口,处理注册逻辑: ```javascript const express = require('express'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.json()); app.post('/api/register', (req, res) => { const email = req.body.email; // TODO: 将邮箱信息存储到数据库中 res.json({ success: true }); }); app.listen(3000, () => { console.log('Server is running on http://localhost:3000'); }); ``` 4. 在后项目中使用数据库存储邮箱信息,可以使用 MongoDB 或者 MySQL 等关系型数据库: ```javascript const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/my_database', { useNewUrlParser: true }); const userSchema = new mongoose.Schema({ email: { type: String, required: true } }); const User = mongoose.model('User', userSchema); app.post('/api/register', (req, res) => { const email = req.body.email; const user = new User({ email }); user.save(err => { if (err) { console.log(err); res.status(500).json({ success: false, message: '注册失败' }); } else { res.json({ success: true }); } }); }); ``` 以上是一个简单的前后分离的邮箱注册流程,需要根据具体业务逻辑进行调整和完善。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值