2016-04-14 18 views
0

olarak işlev gören bir "function" işlevi sunmalıdır. Grunt-express kullanarak ekspres sunucumu başlatmak için Grunt kurmaya çalışıyorum. docs ve this SO question'u okuduktan sonra, hala çözemiyorum. Grunt dosyam için birkaç kombinasyon denedim. Yine de, her zaman hatayı İşteGrunt-express ve statik yollar: Sunucu, http.Server.listen

http.Server.listen olarak hareket ettiğini "dinlemek" adlı bir işlev sağlamalıdır Sunucu alıyorum benim kodudur:

Gruntfile.js

module.exports = function (grunt) { 

    'use strict'; 

    var path = require('path'); 

    grunt.initConfig({ 

     pkg: grunt.file.readJSON('package.json'), 

     app: { 
      basePath: 'public', 
      [...], 
      serverPath: 'backend' 
     }, 

     express: { 
      all: { 
       options: { 
        port: 3000, 
        hostname: '*', //()=>Localhost 
        bases: '<%= app.basePath %>', 
        server: '<%= app.serverPath %>/Server.js', 
        livereload: true 
       } 
      }    
     } 
    }); 
    grunt.registerTask('server', [ 
     'express', 
     'open', 
     'watch' 
    ]); 
    }; 

Proje yapısı:

App_Root/ 
    -Backend/ 
    --Server.js 
    --BackofficeRouter.js 
    -Public/ 
    --index.html 

Server.js:

var express = require('express'); 
var backofficeRouter = require('./backofficeRouter.js'); 
var constants = require('./../public/constants/ConstantsModule.js'); 
var app = express(); 
var appRoot = require('app-root-path'); 

app.use('/backoffice', backofficeRouter); 
app.use(express.static(appRoot + '/public')); 
app.listen(process.env.PORT || 3000); 

BackofficeRouter.js:

backofficeRouter.get('/', function(req, res) { 
    res.sendFile(path.join(appRoot + '/public/index.html')); 
}); 

hırıltı-express my Server.js dosyası nasıl etkileşimde Gerçekten alamadım. Gruntfile'ımdaki varsayılan grunt-express yapılandırmasını ayarlamayı denedim, bu benim Server.js'mde sahip olduğum şeyi hesaba katacağını düşündüm. Ama grunt-express 'config her şeyi geçersiz kılıyor gibi görünüyor. Hata yapabileceğim herhangi bir ipucu var mı?

Yardımlarınız için teşekkür ederiz.

+0

Uygulamayı dışa aktarıyor olmanız ve arama yapmamanız gibi görünüyor, sunucu betiğinden dinleyin (sadece tahmin) – ruedamanuel

+0

Sunucuum'u bir modül olarak dışa aktarmak mı istiyorsunuz? – Stanislasdrg

+1

Yapılandırılmış ifade örneğinizi (yani uygulamayı) bir modül olarak dışa aktarmayı kastediyorum. Benim varsayım benim hata diyorsa, bir 'Dinle' yöntemi arıyor diyorsa, muhtemelen bu yöntemi içeren bu yöntemi içeren bir modül arayan vermelisiniz. – ruedamanuel

cevap

1

Sunucusu, http.Sunucu.listen hatası olarak işlev gören "dinle" adlı bir işlev sağladığından, öğütme görevinin 'dinle' yöntemini içeren bir sunucu örneği beklediğini önerir, bu nedenle bu satırı kaldırmanız gerekir. sunucu

app.listen(process.env.PORT || 3000); 

ve

module.exports = app; 

bu şekilde için değiştirin, hırıltı görevi aradığı dinlemek yöntemini içeren ekspres bir yapılandırılmış örneğini alacaktır.