2016-06-08 2 views
0

새로운 평균 응용 프로그램을 설치했으며 그 응용 프로그램을 사용하여 API를 추가하고 싶습니다. server.js 파일에서 일부 변경을 수행했습니다. app.use 및 body 파서를 추가하여 json에서 데이터를 가져오고 경로, 모델 및 mogodb 데이터베이스를 포함 시켰습니다.평균 스택 응용 프로그램을 사용하는 API

이 내 server.js

'use strict'; 


    /* 
    var cl = console.log; 
    console.log = function(){ 
    console.trace(); 
    cl.apply(console,arguments); 
    }; 
    */ 

    process.env.NODE_CONFIG_DIR = './config/env'; 

    // Requires meanio . 
    var mean = require('meanio'); 
var cluster = require('cluster'); 
var deferred = require('q').defer(); 
// Dependencies 
var express = require('express'); 
var mongoose = require('mongoose'); 
var bodyParser = require('body-parser'); 



// Express 
var app = express(); 
app.use(bodyParser.urlencoded({ extended: true })); 
app.use(bodyParser.json()); 

// Routes 
app.use('/api', require('./web/api')); 

// Code to run if we're in the master process or if we are not in debug mode/ running tests 

if ((cluster.isMaster) && 
    (process.execArgv.indexOf('--debug') < 0) && 
    (process.env.NODE_ENV!=='test') && (process.env.NODE_ENV!=='development') && 
    (process.execArgv.indexOf('--singleProcess')<0)) { 
//if (cluster.isMaster) { 

    console.log('for real!'); 
    // Count the machine's CPUs 
    var cpuCount = process.env.CPU_COUNT || require('os').cpus().length; 

    // Create a worker for each CPU 
    for (var i = 0; i < cpuCount; i += 1) { 
     console.log ('forking ',i); 
     cluster.fork(); 
    } 

    // Listen for dying workers 
    cluster.on('exit', function (worker) { 
     // Replace the dead worker, we're not sentimental 
     console.log('Worker ' + worker.id + ' died :('); 
     cluster.fork(); 

    }); 

// Code to run if we're in a worker process 
} else { 
    var workerId = 0; 
    if (!cluster.isMaster) 
    { 
     workerId = cluster.worker.id; 
    } 

    // Dependencies 

// Creates and serves mean application 
    mean.serve({ workerid: workerId /* more options placeholder*/ }, function (app) { 
     var config = app.getConfig(); 
     var port = config.https && config.https.port ? config.https.port : config.http.port; 
     console.log('Mean app started on port ' + port + ' (' + process.env.NODE_ENV + ') cluster.worker.id:', workerId); 

     deferred.resolve(app); 
    }); 
} 

module.exports = deferred.promise; 

입니다하지만 로컬 호스트를 실행할 때 : 3000 : 3000/API/제품은 즉 localhost를 홈 페이지로 저를 리디렉션합니다.

미리 감사드립니다.

// Dependencies 
var express = require('express'); 
var router = express.Router(); 

// Models 
var Product = require('./models/product'); 

// Routes 
Product.methods(['get', 'put', 'post', 'delete']); 
Product.register(router, '/products'); 

// Return router 
module.exports = router; 

모델/product.js을 api.js

// Dependencies 
var restful = require('node-restful'); 
var mongoose = restful.mongoose; 

// Schema 
var productSchema = new mongoose.Schema({ 
    name: String, 
    sku: String, 
    price: Number 
}); 

// Return model 
module.exports = restful.model('Products', productSchema); 
+0

'require ('./ web/api')' – kiro112

+0

에 대한 코드를 제공하십시오. api.js와 models/product.js가 모두 추가됩니다. –

답변

0

당신이 당신의 server.js 파일에 몽고 데이터베이스를 연결하고 그의 원인이 될 수 있습니다 그것은 마치 보이지 않는 문제. var app = express; 후 다음 행을 추가하십시오 : resources이 MongoDB를 데이터베이스의 이름이 될 것이라고

mongoose.connect("mongodb://localhost/resources"); 

참고.

관련 문제