NodeJS Vue 3 / Express参数返回其名称

pgky5nke  于 2023-02-08  发布在  Node.js
关注(0)|答案(1)|浏览(118)

首先,如果问题的标题让阅读我的问题的人感到困惑,请允许我说声抱歉。我不知道如何最好地表达我的问题。我遇到的问题是当我试图从axios示例向express示例发送get请求时。当我从axios发送数据时,我让对象显示它需要的所有数据,但是当我尝试使用req.params.email来使用这些数据时,它所持有的值是:email,下面是我的代码:

客户端/Axios

checkEmail (data) {
    return http.get('/users/:email', data)
  },

“数据”对象的值

{email: 'ThisIs@MyEmail.Org'}

服务器/快速

router.get('/users/:email', function (req, res) {
    console.log(req.params.email)
    const data = User.find({ email: req.params.email })
    return res.sendStatus(200).json(data)
  })

服务器控制台日志

{ email: ':email' }

顺便说一句,我试着只使用req.params,但它返回的是同样的结果。如果有人能指出我做错了什么,我将非常感激!

t98cgbkg

t98cgbkg1#

这段代码可以工作。您需要从hard code data
到您的const data = User.find({ email: req.params.email })

const data = {
        email: 'test@gmail.com',
        first_name: 'Tom',
        last_name: 'Cruise'
    }

const data = User.find({ email: req.params.email  })

server.js

const express = require("express")
const axios = require('axios')
const cors = require("cors")

const app = express()
app.use(cors())

app.get("/users/:email", async (req, res) => {
    console.log("params", req.params);
    // const data = User.find({ email: req.params.email  })
    const data = {
        email: 'test@gmail.com',
        first_name: 'Tom',
        last_name: 'Cruise'
    }
    res.status(200).json(data);
});

app.listen(3000, () => { console.log("Listening on :3000") })

client.js

const axios = require('axios')
const checkEmail = async (data) => {
    try {
        const response = await axios.get(`http://localhost:3000/users/${data}`);
        return Promise.resolve(response.data)
    } catch (error) {
        return Promise.reject(error)
    }
};

checkEmail('ThisIs@MyEmail.Org')
    .then(result => {
        console.log('user is : ' + JSON.stringify(result))
    })
    .catch(error => {
        console.log(error.message)
    });

安装依赖项

npm install express axios cors

运行第一台服务器

node server.js

运行第二个客户端

node client.js

服务器上的结果

客户端结果

相关问题