如何使用zeit now服务器为NodeJS表单应用程序提供服务



我正在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"]
}
]
  • 您需要验证此服务器在本地计算机上是否正常运行
  • 由于您使用的是buildsvercel.json选项,因此需要确保所有依赖项(如node_modules等(都上载到vercel,方法是从vercel-cli部署文件,或者使用一些管道或CI操作

最新更新