2017-09-23 11 views
0

我有nodejs服務器,它將javascript文件發送到客戶端。但在客戶端這個JavaScript文件不會導入使用的庫。在客戶端,我加載這些庫,然後收到文件。爲什麼這個文件沒有找到庫。有任何想法嗎? 項目結構:enter image description here使用nodejs服務器發送JavaScript文件

Controller.js代碼:

$(document).attr("title", "Модерен всеки ден"); 
const mainContent = $('#main-content'); 
$('#h1').html('Онлайн магазин за аксесоари'); 

if (window.sessionStorage.length < 2) { 
    $('#login').removeClass('hidden'); 
    $('#register').removeClass('hidden'); 
    $('#logout').addClass('hidden'); 
    $('#shopping-bag').removeClass('hidden'); 
    $('#username-label').addClass('hidden'); 
} else { 
    $('#login').addClass('hidden'); 
    $('#register').addClass('hidden'); 
    $('#logout').removeClass('hidden').on('click',() => {window.sessionStorage.clear(); window.location.href = ''}); 
    $('#shopping-bag').removeClass('hidden'); 
    $('#username-label').html(`Здравей ${window.sessionStorage.getItem('firstName')}!`).removeClass('hidden'); 
} 

Promise.all([ 
    loadTemplate('home'), 
    data.getHotOffers() 
]).then(([template, offers]) => { 
    if (mainContent.children().length === 2) { 
     $(mainContent).children().first().remove(); 
    } 
    mainContent.prepend(template(JSON.parse(offers))); 
}, err => console.log(err)); 

節點JS服務器代碼:

..... 
app.get('/home-controller', function (request, response) { 
    response.sendFile('./controllers/homeController.js', { root: __dirname }); 
}); 
...... 

Main.js代碼:

import 'jquery'; 
import 'jquery-ui'; 
import Navigo from 'navigo'; 
import { load as loadTemplate } from 'templates'; 
import * as data from 'data'; 
import * as request from 'requester'; 

const router = new Navigo(null, true, '#!'); 
router.on({'/': request.get('/home-controller') 
}).resolve(); 
+0

你能重現相同的代碼或在github上分享嗎? – Adrian

+0

你能提供代碼嗎?據我所知,從後端,你不能導入整個庫,只有數據到客戶端。 –

+0

okey,我會發布 –

回答

0

您不能發送。 js文件。您可以發送HTML,然後包含立即使用的腳本標記。或者引用外部腳本。

res.send('js code here') 儘管您沒有發佈足夠的代碼,但更多的代碼可以幫助我們幫助您。