【发布时间】:2021-06-17 02:56:47
【问题描述】:
我是 Node.js 的新手,并尝试通过从 iOS 应用程序将电子邮件作为 url 参数发送来检查电子邮件是否已被接收。它不工作,不知道我做错了什么。
我无法 console.log 从前端发送的 VSCode 中的电子邮件参数,它确实在 XCODE 中打印(http://localhost:3000/api/user/email/test@gmail.com )并且我知道后端正在获取 GET 请求。
我的路由器代码是:
const express = require(`express`)
const router = new express.Router()
const User = require(`../models/user-model`) // import User model
router.get(`/api/user/email/:email`, async (req, res) => {
console.log(req.params) // does NOT print email: test@gmail.com
try {
const user = await User.findOne(req.params.email)
if (user) {
console.log(user._id)
res.send({ available: false })
} else {
res.send({available: true})
}
} catch {
res.status(404).send()
}
})
谢谢!
【问题讨论】:
-
"不打印电子邮件:test@gmail.com" — 虽然知道什么时候没有发生预期的行为总是有用的,但你真的应该告诉我们你得到了什么行为。它是否打印
undefined?{}?还有什么?这条线永远不会被调用吗? -
您如何将路由器安装到您的应用程序中?考虑到这一点,您的网址是否真的正确?
-
@Quentin,看起来目标路由没有被调用(我添加了一个 console.log('email route') 并且它没有记录)所以我需要查看我的 Swift代码并仔细检查一切......
-
忽略 swift 代码。要么没有向
http://localhost:3000/api/user/email/test@gmail.com发出请求(在这种情况下,使用浏览器手动触发请求)要么是错误的 URL(请参阅我之前的评论)。 -
呃,我忘了添加 'module.exports = router' !我的错!
标签: javascript node.js