我有一个使用NodeJS,MongoDB(以Mongoose作为驱动程序)和ExpressJS的完整Web应用程序。
该项目可以在我的本地计算机上完美运行。今天,我决定将一切都投入生产。我正在使用Google App
Engine托管我的应用程序,并使用Compose(以前是MongoHQ)托管我的数据库。
尽管我的API似乎不起作用,但App
Engine可以完美地为我的应用程序提供服务器。我的API是从服务example.com/api
,并且每个请求(GET
,POST
,DELETE
和PUT
)所有返回一个502(坏网关)错误。
我尝试在连接到远程MongoDB数据库的同时在本地html" target="_blank">计算机上运行应用程序,并且运行良好。因此,App
Engine或NodeJS一定是问题,而不是MongoDB。
我尝试检查Google Cloud中的所有错误日志,尽管没有错误。
为什么App Engine / NodeJS可以很好地为我的应用程序提供静态内容,但不允许对我的API发出任何请求?
502 Bad Gateway通常是Nginx方面的错误。不幸的是,这些日志尚未浮出水面。
很多时候,问题在于您的HTTP数据包太大,无法容纳缓冲区或类似内容。您看到nginx日志的方式是这样的:
manual_scaling: instances: 1
然后重新部署
将虚拟机从“ Google拥有”切换到自我管理。这可以在Cloud Console中完成。转到Compute Engine实例,单击与App Engine版本匹配的实例名称,您应该会看到一个选项,可将其切换为自我管理。
gcloud compute ssh <instance name>
SSH到机器
docker ps
查看您正在运行的容器。查找名为nginx的容器并获取其ID。
有了容器ID后,您应该可以docker exec -it <container id> -- cat /var/log/nginx/error.log
。您可能需要ls
整个日志目录。
您可能会看到一个错误,这将对发生的问题有更大的提示。
我知道这比应该的要复杂得多:-\如果您对上述步骤有任何疑问,请发表评论。如果您确实发现了错误,但不确定如何处理,请发表评论。
我有一个使用NodeJS、MongoDB(Mongoose作为驱动程序)和ExpressJS的完整web应用程序。 这个项目在我的本地机器上运行得很好。今天我决定把一切都转移到生产上。我正在使用Google App Engine来托管我的应用程序,并使用Compose(形式上是MongoHQ)来托管我的数据库。 App Engine完美地服务于我的应用程序,尽管我的API似乎不起作用。我的API由
问题内容: 更新-自行回答 我看到必须确保从计算机正确解析了DNS,请查看节点文档以确保域是可解析的。 原始问题 我正在编写一个基于节点的程序,用户可以要求我代表他们执行一次httprequest {当然,他们向我提供一些数据和调用方法},但是每次我执行一次httprequest,都会给我一个错误 getaddrinfo ENOENT这是我的代码的外观 问题答案: 我已经看到,当您的主机(您通过h
我使用下面的代码来解析重定向以返回链接的最终url 不幸的是,我有时会得到 .解决这个问题的好方法是什么?以下是好的还是有更好的方法。 另外,如果except块中有异常,会发生什么情况?
有人能帮我做这个吗? 我不知道错误是什么,也不知道我应该如何修复它。任何帮助都很感激
问题内容: 我试图使用下面的代码获取MSSQL nodejs包以从Microsoft SQL Server返回存储过程的结果。但是我得到的错误是… 我不确定我是否正确地完成了输入,因为我找不到在线上有多个输入的示例。 有任何想法吗? 我使用软件包“ Seriate”成功完成了请求,但希望使用mssql。适用于“ Seriate”的代码如下。 问题答案: 我认为线的 这有req.input那似乎是错
问题内容: 我正在尝试在NodeJS中使用async / await,但是我的脚本抛出了语法错误。 自从Node 7.6以来,我一直很自然地支持 async / await 。当我跑步时我得到。 以下是内容: 但是,当我调用此脚本时,我得到: 我正在运行Linux Mint 18.1。 如何获得我的脚本进行编译和运行? 问题答案: 仅在内部函数中有效,因此,例如,您需要一个异步IIFE将代码包装为