Ruby 终端curl:(7)无法连接到本地主机端口3000:连接被拒绝

Ruby 终端curl:(7)无法连接到本地主机端口3000:连接被拒绝,ruby,node.js,curl,terminal,Ruby,Node.js,Curl,Terminal,当我运行时,我正在使用OSX Elcapitan,10.11.6 curl localhost:3000 或 或 或 它总是说: curl:(7)无法连接到127.0.0.1端口3000:连接被拒绝 ruby 2.1.3p242(2014-09-19修订版47630)[x86_64-darwin13.0] 我的代码: var http = require('http'), express = require('express'), path = require('path'),

当我运行时,我正在使用OSX Elcapitan,10.11.6

curl localhost:3000

它总是说:

curl:(7)无法连接到127.0.0.1端口3000:连接被拒绝

ruby 2.1.3p242(2014-09-19修订版47630)[x86_64-darwin13.0]

我的代码:

var http = require('http'),
    express = require('express'),
    path = require('path'),
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    CollectionDriver = require('./collectionDriver').CollectionDriver;

var app = express();
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: false}));

var mongoHost = 'localHost';
var mongoPort = 27017;
var collectionDriver;

var url = 'mongodb://localhost:27017/mongo-server';
// Use connect method to connect to the server
MongoClient.connect(url, function(error, db) {
  if (error) {
    console.error(error.message);
    process.exit(1);
  }

  console.log("Connected to MongoDB successfully.");
  collectionDriver = new CollectionDriver(db);
});

app.use(express.static(path.join(__dirname, 'public')));

app.get('/', function (req, res) {
  res.send('<html><body><h1>Hello World</h1></body></html>');
});

app.get('/:collection', function(req, res) {
   var params = req.params;
   collectionDriver.findAll(req.params.collection, function(error, objs) {
          if (error) { res.send(400, error); }
          else {
              if (req.accepts('html')) {
                  res.render('data',{objects: objs, collection: req.params.collection});
              } else {
              res.set('Content-Type','application/json');
                  res.send(200, objs);
              }
         }
    });
});

app.get('/:collection/:entity', function(req, res) {
   var params = req.params;
   var entity = params.entity;
   var collection = params.collection;
   if (entity) {
       collectionDriver.get(collection, entity, function(error, objs) {
          if (error) { res.send(400, error); }
          else { res.send(200, objs); }
       });
   } else {
      res.send(400, {error: 'bad url', url: req.url});
   }
});

app.post('/:collection', function(req, res) {
    var object = req.body;
    var collection = req.params.collection;
    collectionDriver.save(collection, object, function(err,docs) {
          if (err) { res.send(400, err); }
          else { res.send(201, docs); }
     });
});

app.put('/:collection/:entity', function(req, res) {
    var params = req.params;
    var entity = params.entity;
    var collection = params.collection;
    if (entity) {
       collectionDriver.update(collection, req.body, entity, function(error, objs) {
          if (error) { res.send(400, error); }
          else { res.send(200, objs); }
       });
   } else {
       var error = { "message" : "Cannot PUT a whole collection" }
       res.send(400, error);
   }
});

app.delete('/:collection/:entity', function(req, res) {
    var params = req.params;
    var entity = params.entity;
    var collection = params.collection;
    if (entity) {
       collectionDriver.delete(collection, entity, function(error, objs) {
          if (error) { res.send(400, error); }
          else { res.send(200, objs); }
       });
   } else {
       var error = { "message" : "Cannot DELETE a whole collection" }
       res.send(400, error);
   }
});

app.use(function (req,res) {
    res.render('404', {url:req.url});
});

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});
var http=require('http'),
express=require('express'),
path=require('path'),
MongoClient=require('mongodb')。MongoClient,
Server=require('mongodb')。Server,
CollectionDriver=需要('./CollectionDriver')。CollectionDriver;
var-app=express();
应用程序集('port',process.env.port | | 3000);
app.set('views',path.join('views');
应用程序集(“查看引擎”、“翡翠”);
var bodyParser=require('body-parser');
use(bodyParser.urlencoded({extended:false}));
var mongoHost='localHost';
var mongoPort=27017;
var采集驱动器;
var url='1〕mongodb://localhost:27017/mongo-服务器';
//使用connect方法连接到服务器
连接(url,函数(错误,数据库){
如果(错误){
console.error(error.message);
过程。退出(1);
}
log(“已成功连接到MongoDB”);
collectionDriver=新的collectionDriver(db);
});
app.use(express.static(path.join(uu dirname,'public'));
app.get('/',函数(req,res){
res.send(“你好世界”);
});
app.get('/:collection',函数(req,res){
var params=请求参数;
collectionDriver.findAll(req.params.collection,函数(error,objs){
if(error){res.send(400,error);}
否则{
if(请求接受('html')){
res.render('data',{objects:objs,collection:req.params.collection});
}否则{
res.set('Content-Type','application/json');
res.send(200,objs);
}
}
});
});
app.get('/:collection/:entity',函数(req,res){
var params=请求参数;
var实体=参数实体;
var collection=params.collection;
if(实体){
获取(集合、实体、函数(错误、objs){
if(error){res.send(400,error);}
else{res.send(200,objs);}
});
}否则{
res.send(400,{错误:'bad url',url:req.url});
}
});
app.post('/:collection',函数(req,res){
var object=req.body;
var collection=req.params.collection;
collectionDriver.save(集合、对象、函数(错误、文档){
如果(错误){res.send(400,错误);}
否则{res.send(201,docs);}
});
});
app.put('/:collection/:entity',函数(req,res){
var params=请求参数;
var实体=参数实体;
var collection=params.collection;
if(实体){
更新(集合、请求主体、实体、函数(错误、objs){
if(error){res.send(400,error);}
else{res.send(200,objs);}
});
}否则{
var error={“message”:“无法放置整个集合”}
res.send(400,错误);
}
});
应用程序删除('/:collection/:entity',函数(req,res){
var params=请求参数;
var实体=参数实体;
var collection=params.collection;
if(实体){
collectionDriver.delete(集合、实体、函数(错误、objs){
if(error){res.send(400,error);}
else{res.send(200,objs);}
});
}否则{
var error={“message”:“无法删除整个集合”}
res.send(400,错误);
}
});
应用程序使用(功能(请求、恢复){
res.render('404',{url:req.url});
});
http.createServer(app.listen)(app.get('port'),function(){
console.log('Express server监听端口'+app.get('port'));
});

看起来您没有启动服务器,或者服务器运行的端口与您期望的端口不同


如果这是一个Rails应用程序,
Rails c
。如果是其他基于机架的程序,您需要以另一种方式启动它,例如。

您希望哪种应用程序在该端口上响应请求?你的程序看起来怎么样?您是如何启动程序的?应用程序是否在该端口上运行。请检查我上面的更新代码。谢谢。注意“0.0.0.0”不是本地主机…是的,你说得对。我应该打开另一个终端窗口来执行此操作。谢谢。另一个窗口的优点是您可以查看日志,这些日志通常会显示很多有关应用程序运行情况的信息。
curl 0.0.0.0:3000
curl -x "" "http://127.0.0.1:3000"
ruby -v
var http = require('http'),
    express = require('express'),
    path = require('path'),
    MongoClient = require('mongodb').MongoClient,
    Server = require('mongodb').Server,
    CollectionDriver = require('./collectionDriver').CollectionDriver;

var app = express();
app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({extended: false}));

var mongoHost = 'localHost';
var mongoPort = 27017;
var collectionDriver;

var url = 'mongodb://localhost:27017/mongo-server';
// Use connect method to connect to the server
MongoClient.connect(url, function(error, db) {
  if (error) {
    console.error(error.message);
    process.exit(1);
  }

  console.log("Connected to MongoDB successfully.");
  collectionDriver = new CollectionDriver(db);
});

app.use(express.static(path.join(__dirname, 'public')));

app.get('/', function (req, res) {
  res.send('<html><body><h1>Hello World</h1></body></html>');
});

app.get('/:collection', function(req, res) {
   var params = req.params;
   collectionDriver.findAll(req.params.collection, function(error, objs) {
          if (error) { res.send(400, error); }
          else {
              if (req.accepts('html')) {
                  res.render('data',{objects: objs, collection: req.params.collection});
              } else {
              res.set('Content-Type','application/json');
                  res.send(200, objs);
              }
         }
    });
});

app.get('/:collection/:entity', function(req, res) {
   var params = req.params;
   var entity = params.entity;
   var collection = params.collection;
   if (entity) {
       collectionDriver.get(collection, entity, function(error, objs) {
          if (error) { res.send(400, error); }
          else { res.send(200, objs); }
       });
   } else {
      res.send(400, {error: 'bad url', url: req.url});
   }
});

app.post('/:collection', function(req, res) {
    var object = req.body;
    var collection = req.params.collection;
    collectionDriver.save(collection, object, function(err,docs) {
          if (err) { res.send(400, err); }
          else { res.send(201, docs); }
     });
});

app.put('/:collection/:entity', function(req, res) {
    var params = req.params;
    var entity = params.entity;
    var collection = params.collection;
    if (entity) {
       collectionDriver.update(collection, req.body, entity, function(error, objs) {
          if (error) { res.send(400, error); }
          else { res.send(200, objs); }
       });
   } else {
       var error = { "message" : "Cannot PUT a whole collection" }
       res.send(400, error);
   }
});

app.delete('/:collection/:entity', function(req, res) {
    var params = req.params;
    var entity = params.entity;
    var collection = params.collection;
    if (entity) {
       collectionDriver.delete(collection, entity, function(error, objs) {
          if (error) { res.send(400, error); }
          else { res.send(200, objs); }
       });
   } else {
       var error = { "message" : "Cannot DELETE a whole collection" }
       res.send(400, error);
   }
});

app.use(function (req,res) {
    res.render('404', {url:req.url});
});

http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});