我正在zeit now服务器上运行一个简单的nodejs表单处理应用程序,并使用now CLI脚本进行部署。尽管此Node应用程序在所述端口号内的本地主机上运行良好(如下:http://localhost:8081/myaction),但是,在zeit服务器上,我无法使用相同的功能,我将localhost替换为NOW构建脚本提供的服务器URL。
这是我的now.json,我还提供了对git存储库的访问权限,该存储库有节点服务器应用程序thaat来处理表单,发送电子邮件,并在最后一步提供感谢页面。
节点服务器应用程序回购:https://github.com/jnsrikanth/node-form-server2
now.json文件内容:
{
"version": 2,
"builds": [{ "src": "index.js", "use": "@now/node-server" }],
"routes": [
{
"src": "/public/thank-you/dist/",
"dest": "/index.html",
"methods": ["GET"]
},
{
"src": "/",
"dest": "/index.js",
"methods": ["POST"]
}
]
}
package.json和剩余的代码可以在存储库中找到。如果我能在这里找到一些建议,那就太好了。
此外,请注意,在我的表格中,我正在调用action="https://zeit-url:8081/myaction"method="POST"其中8081是express应用程序正在侦听的端口,用于处理带有表单数据的POST方法。
在now.json中将/
替换为/myaction
...
{
"src": "/myaction",
"dest": "/index.js",
"methods": ["POST"]
}
...
只要打电话https://zeit-url/myaction(没有端口号(
我希望它能帮助你
我建议您将now.json
转换为vercel.json
,并根据您提供的github repo对其进行更新,使其看起来像:
"version": 2,
"builds": [
{
"src": "index.js",
"use": "@vercel/node"
}
],
"routes": [
{
"src": "/public/thank-you/dist/",
"dest": "/public/index.html",
"methods": ["GET"]
},
{
"src": "/",
"dest": "/index.js",
"methods": ["POST"]
}
]
- 您需要验证此服务器在本地计算机上是否正常运行
- 由于您使用的是
builds
vercel.json
选项,因此需要确保所有依赖项(如node_modules
等(都上载到vercel,方法是从vercel-cli
部署文件,或者使用一些管道或CI操作