node.js - 如何使用 zeit now server 为 NodeJS 表单应用程序提供服务
问题描述
我正在 zeit now 服务器上运行一个简单的 nodejs 表单处理应用程序,并使用 now CLI 脚本进行部署。此 Node 应用程序虽然在所述端口号内的 localhost 上运行良好(例如:http://localhost:8081/myaction),但是在我用服务器替换 localhost 的 zeit 服务器上,相同的功能不适用于我NOW 构建脚本给出的 URL。
这是我的 now.json,我还提供对 git 存储库的访问权限,该存储库具有处理表单的节点服务器应用程序、发送电子邮件并在最后一步提供感谢页面。
节点服务器应用程序仓库: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
为 avercel.json
并根据您提供的 github 存储库对其进行更新,如下所示:
"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"]
}
]
- 您需要验证此服务器在本地计算机上运行没有问题。
- 由于您使用的是该选项,因此您需要通过从 部署文件或使用某些管道或 CI 操作
builds
vercel.json
来确保将所有依赖项(例如node_modules
等)上传到 vercel 。vercel-cli
推荐阅读
- javascript - 使用 Javascript 变量作为 EJS 数组的索引 - NODEJS
- javascript - 无法访问 php 中发布的数据
- python - 如何让 python scapy 从命名的 fifo 中嗅探
- java - Interbase DB JDBC 连接
- angular - 我不断收到错误消息:错误:提供给 Query.startAt() 的参数过多。使用 AngularFire2 时
- spring-boot - 在spring security(Spring boot)中获取所有url中的禁止错误
- neo4j - 两组节点之间的最短路径
- java - 如何在我的 Spring 应用程序中获取 Firebase 的 Oauth 2.0 访问令牌
- rhel6 - 我可以在 RHEL6 下的 SystemTap 中获取当前工作目录吗
- python - 在指定距离/边界内获取点标签 - Python