Sails.js SailsJS:服务器没有';似乎没有在本地开发实例上启动

Sails.js SailsJS:服务器没有';似乎没有在本地开发实例上启动,sails.js,Sails.js,当我用“sails lift”启动服务器时,我看到以下错误: error: Server doesn't seem to be starting. error: Perhaps something else is already running on port 1337? 即使我尝试从新开始运行,或者尝试使用不同的端口运行,我也会收到相同的错误。需要明确的是:以下情况会对任何端口产生相同的错误: sails lift --port 2222 从头开始创建全新的sails应用程序效果很好。同样

当我用“sails lift”启动服务器时,我看到以下错误:

error: Server doesn't seem to be starting.
error: Perhaps something else is already running on port 1337?
即使我尝试从新开始运行,或者尝试使用不同的端口运行,我也会收到相同的错误。需要明确的是:以下情况会对任何端口产生相同的错误:

sails lift --port 2222
从头开始创建全新的sails应用程序效果很好。同样的代码在同事的机器上似乎工作得很好,但我已经尝试设置了两次,但都没有成功

如何调试这个

注意:我不确定这是否真的导致了问题。我已经将我的应用程序中的其他错误与其他原因隔离开来,现在尽管有此输出,服务器仍在运行

我可以使用我的玩具应用程序创建一种情况,在使用端口的情况下启动Sails,然后除了上面的错误之外,我还收到一条警告:

warn: error raised: Error: listen EADDRINUSE

我的问题是关于我没有收到额外错误或警告的情况。当我没有看到EADDRINUSE,但仍然得到服务器似乎没有启动的错误。“服务器似乎没有启动”的错误是否来自节点、Express和Sails?此堆栈的新手,希望了解如何隔离此问题。

侦听此端口的其他应用程序中的问题

你可以用几种方法来解决这个问题

  • 在将开始航行的
    config/local.js
    端口进行配置,即

    module.exports = {
        port: 3000
    }
    
  • 请参阅侦听端口1337的应用程序。它可以是监听1337端口的nginx。当您找到应用程序时,请使用其他选项重新配置它或将其杀死

  • 如果您使用nginx代理对NodeJS的请求,那么nginx和sail不能使用相同的端口。例如,您有nginx侦听80端口,它将请求从80端口重定向到3000端口。然后,您必须将Sails配置为在3000端口上运行,并在
    config/local.js
    中设置代理主机和代理端口参数,如下所示

    module.exports = {
        port: 3000,
        environment: 'production',
        proxyHost: 'yourhost.com',
        proxyPort: 80
    }
    
  • 如果您看到“服务器似乎没有启动”消息,但仍然能够访问服务器,那么问题只是服务器启动的时间比预期的要长。
    liftTimeout
    config可以帮助实现这一点。在config/local.js文件中,设置:

    liftTimeout: 1000 // defaults to 500
    

    假设您的服务器启动不到一秒钟,问题就会消失。根据您的需要调整超时。

    您使用的是哪个版本的sails?该项目是0.9.8--尽管我也尝试了0.9.16,但没有任何更改。您是否尝试在其他端口上运行它?我知道这并不能回答为什么1337会失败,但可能会进一步孤立这个问题。@sethetter和Eugene指出,超龙在1337上运行着其他东西。我有时会遇到错误地关闭sails的问题,这会导致我不得不手动终止的进程处于打开状态,然而,这并不能解释为什么您可以创建一个新的sails项目来提升它。通常如何关闭sails服务器?正如我前面所说的,并且在上面刚刚澄清的,它发生在我尝试过的任何端口上。它实际上也不会阻止服务器运行(在我的说明中提到),因此这可能是一个虚假错误。这不是我尝试使用的端口上运行的某些东西的问题(尽管感谢您对端口配置的精彩解释!)您使用的是哪个版本的SAIL?节点可能会启动app.js两次。当你打开你的应用程序类型ps-aux | grep node并查看它将打印什么时。听起来它会工作,但似乎没有效果,甚至增加到10000——我假设这些都是毫秒?在报告错误之前似乎没有等待10秒。我需要一个特殊版本的帆吗?(它不在我的config/local.js中,但我添加了它)是的,这只添加到了v0.10(它是beta版),特别是v0.10.0-rc5中。显然,问题在此之前就存在了,但不幸的是,超时值被硬编码为500。如果它真的很烦人,您可以搜索Sails代码以查找
    ,也许其他东西已经在运行了
    ,然后编辑硬编码的值。是的,它是毫秒级的,太棒了。我将期待升级到0.10:)