Running Meteor on localhost fails with RangeError: port should be >= 0 and < 65536: NaN

Running Meteor on localhost fails with RangeError: port should be >= 0 and < 65536: NaN

我正在 运行使用 node 和 Mongodb 在本地主机上创建一个项目,但是当我尝试在数据库上创建一个集合时它失败并出现错误。

我正在使用此脚本构建项目:

cd ~/Meteor/daily-reminder
meteor build ~/build-output-daily-reminder --server=http://localhost
cd ~/build-output-daily-reminder
tar -xvzf daily-reminder.tar.gz
rm daily-reminder.tar.gz
cd ~/build-output-daily-reminder/bundle
(cd programs/server && npm install)
export MONGO_URL='mongodb://username:password@http://localhost:27017/daily-reminder'
export ROOT_URL='http://localhost/'
export PORT='3000'
echo "now run node main.js"
node main.js

(我在真实代码中使用了我实际的 mongodb 用户名和密码)。

项目构建良好,但节点不会 运行。它生成此错误:

now run node main.js
/home/shelagh/build-output-daily-reminder/bundle/programs/server/node_modules/fibers/future.js:245
                        throw(ex);
                              ^
RangeError: port should be >= 0 and < 65536: NaN
    at Socket.connect (net.js:917:13)
    at Object.exports.connect.exports.createConnection (net.js:92:35)
    at [object Object].Connection.start (/home/shelagh/build-output-daily-reminder/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/connection/connection.js:173:29)
    at _connect (/home/shelagh/build-output-daily-reminder/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:211:16)
    at [object Object].ConnectionPool.start (/home/shelagh/build-output-daily-reminder/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/connection/connection_pool.js:231:3)
    at Server.connect (/home/shelagh/build-output-daily-reminder/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/connection/server.js:708:18)
    at Db.open (/home/shelagh/build-output-daily-reminder/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/db.js:281:23)
    at connectFunction (/home/shelagh/build-output-daily-reminder/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/mongo_client.js:275:67)
    at Function.MongoClient.connect (/home/shelagh/build-output-daily-reminder/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/mongo_client.js:345:5)
    at Function.Db.connect (/home/shelagh/build-output-daily-reminder/bundle/programs/server/npm/mongo/node_modules/mongodb/lib/mongodb/db.js:2094:23)

如果我使用新创建的 Meteor 项目,那么节点 运行 没问题。但是,一旦我将此行添加到我的 js 文件的开头,它就会失败:

Tasks = new Mongo.Collection("tasks");

服务器尝试与数据库通信时似乎出现了一些问题。但是我的 MONGO_URL 看不出有什么问题:端口被指定为 27017。从错误来看,似乎端口甚至没有被传入。

我正在使用节点 v0.12.7 和 MongoDB shell 版本:2.4.9。我通过在单独的终端 window 中输入 'mongo' 来启动 mongo。

你的MONGO_URL是错误的,它重新定义了你指定主机的协议。

改变

export MONGO_URL='mongodb://username:password@http://localhost:27017/daily-reminder'

export MONGO_URL='mongodb://username:password@localhost:27017/daily-reminder'