nodejs学习
1、vue3前端
报错uncaught TypeError: Cannot set properties of undefined (setting ‘baseURL’)
更改axios版本
2、 nodejs配置跨域
npm install cors --save
var cors = require("cors");
app.use(cors({
"origin": "*",
"methods": "GET,HEAD,PUT,PATCH,POST,DELETE",
"preflightContinue": false,
"optionsSuccessStatus": 204
}))
注意:app.use(cors())引入必须放在路由引入之前,否则不起作用
3、登陆注册接口前端写法
<template>
<div>
<el-form
label-width="100px"
ref="formlabelref"
:rules="rules"
:model="formlabel"
style="width: 60%;margin:0 auto"
class="demo-ruleForm"
>
<el-form-item label="Name" prop="name">
<el-input v-model="formlabel.name"></el-input>
</el-form-item>
<el-form-item label="Password" prop="password">
<el-input v-model="formlabel.password"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submit">login</el-button>
<el-button type="primary" @click="register">register</el-button>
<el-button @click="reset">Reset</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script lang='ts'>
import { defineComponent, ref, unref } from 'vue'
import { userlogin ,userregister} from '../utils/api'
import {throttle} from '../utils/util'
import {
ElMessage
} from 'element-plus';
export default defineComponent({
name: 'login',
setup() {
let formlabelref = ref()
let formlabel = ref({
name: '',
password: '',
})
let rules= ref({
name: [
{
required: true,
message: 'Please input name',
trigger: 'blur',
}
],
password: [
{
required: true,
message: 'Please input password',
trigger: 'blur',
},
],
})
const submittemp = () => {
const form = unref(formlabelref)
form.validate((valid)=>{
if(!valid){
return ElMessage.error('用户名或密码未输入')
}else{
userlogin(form.model).then(res => {
if (res.code === 200) {
ElMessage.success(res.msg);
reset()
} else {
ElMessage.error(res.msg);
}
})
}
})
}
const registertemp = () => {
const form = unref(formlabelref)
form.validate((valid)=>{
if(!valid){
return ElMessage.error('用户名或密码未输入')
}else{
userregister(form.model).then(res => {
if (res.code === 200) {
ElMessage.success(res.msg);
reset()
} else {
ElMessage.error(res.msg);
}
})
}
})
}
const submit = throttle(submittemp,3000)
const reset = () => {
const form = unref(formlabelref)
form.resetFields()
}
const register = throttle(registertemp,3000)
return {
rules,
formlabel,
formlabelref,
submit,
register,
reset
}
}
})
</script>
4、跟nodejs搭建 的后端关联
axios.defaults.baseURL = 'http://localhost:3000';
启动前端&后端项目,调用接口