2016-06-08 57 views
0

我已經安裝了新的平均應用程序,並且我想使用該應用程序添加api。我已經做了一些在server.js文件中的更改,我添加了app.use和body parser來獲取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/API /產品重定向我的主頁即本地主機:3000。

在此先感謝。

api.js

// 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

// 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;後加入如下一行:

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

注意resources將是你的MongoDB數據庫的名稱。