背景
我有一个NUXT应用程序,可以像您期望的那样呈现vue模板。我需要从外部应用程序客户端点击应用程序中的一些Express路由。
我可以从外部应用程序中获取GET路由但POST请求失败并显示错误404。
示例
快速
这可行
router.get('/test/get', (req, res, next) => {
res.json({ message: "Global PDF Generator is configured correctly", status: "operational" })
});
这失败了404
router.post('/test/post', (req, res, next) => {
res.json({ message: "Global PDF Generator is configured correctly", status: "operational" })
});
在Nuxt应用程序内部以及任何vue组件中,我可以像这样点击POST路由,
fetch('api/v1/pdf', { method: 'POST' }
但如果我们尝试做这样的事情就会失败,
fetch('localhost:3000/api/v1/pdf', { method: 'POST' }
第二个例子很重要,因为我不得不从外部应用程序中获取此应用程序的终点。
我无法理解的是,当POST请求继续从外部应用程序获得404时,GET请求工作原因并且没有获得404。
问题
如何在NUXT应用程序中创建一个可从外部访问的Express POST端点,以便可以从外部源直接访问它?
答案 0 :(得分:1)
不是答案,只是因为我可以格式化事物并证明其他事情必须继续下去。这个最小的例子对我来说很好。
vue init nuxt-community/express-template sample_post
cd sample_post
npm install
修改api / routes / users.js添加帖子路径:
router.post('/test', function(req, res, next) {
res.json(message: 'hello');
});
启动服务:
npm run dev
验证它是否成功从外部请求中返回帖子:
curl -X POST http://localhost:3000/api/test
{"message":"hello"}
所以别的东西必须在某个地方进行。
答案 1 :(得分:0)
这是因为在生产中的NuxtJs应用程序仅看到页面routes
而不是服务器route
。您应该使用NuxtJs serverMiddleware
。您可以从NuxtJs API中找到here