2016-12-14 4 views
0

Возможно ли, что веб-приложение NodeJS «импортирует» и использует локальные функции файла Javascipt без использования каких-либо промежуточных модулей?Импорт локальных файлов Javascript в NodeJS

EDIT:

cont.js

function getStyles(res,reqFile){ 
    var options={ 
       root:__dirname+'/Views/styles/', 
       headers:{ 
        'Content-Type':'text/css' 
       } 
      }; 

       res.sendFile(reqFile,options,function(err){ 
        if(err){ 
         console.log(err); 
         res.status(err.status).end(); 
        } 
        else { 
         console.log("Sent "+ reqFile); 
        } 
       });  
} 

server.js

var fs = require('fs') 
var path = require('path') 
var express = require('express') 
var app = express(); 
var url = require('url') 
var views="/Views/" 

app.get(/\/Views\/styles\//,function(req,res){ 
var reqPath = url.parse(req.url).pathname; 
var reqFile = path.basename(reqPath); // the requested file 
console.log("VIEWS/STYLES : " + reqPath); 

fs.readdir(__dirname+views+'/styles','utf8',function(err,data){ 
    console.log(data); 
    if(data.includes(reqFile)){ 
     console.log(reqFile+ " Found in data array"); 
      //call function here 
      getStyles(res,reqFile); 
      } 

}); 

Относительный путь к server.js является: ./cont/cont.js

+0

Я думаю, что вы говорите есть веб-страница, которая вызывает функцию яваскрипта в узле? Если это так, то нет, веб-приложение работает на сервере, и единственное сообщение с клиентом javascript-кода в браузере - это вызовы на веб-сервер. –

ответ

0

Да, вы можете просто потребовать («относительное имя файла») и использовать код, но ваш файл cont.cont.js должен добавить экспорт

Что-то вроде:

cont.js

function getStyles(res,reqFile){ 
    var options={ 
       root:__dirname+'/Views/styles/', 
       headers:{ 
        'Content-Type':'text/css' 
       } 
      }; 

       res.sendFile(reqFile,options,function(err){ 
        if(err){ 
         console.log(err); 
         res.status(err.status).end(); 
        } 
        else { 
         console.log("Sent "+ reqFile); 
        } 
       });  
} 

module.exports = getStyles; 

server.js

var fs = require('fs') 
var path = require('path') 
var express = require('express') 
var app = express(); 
var url = require('url') 
var views="/Views/" 

var getStyles = require('./cont/cont.js') 

app.get(/\/Views\/styles\//,function(req,res){ 
var reqPath = url.parse(req.url).pathname; 
var reqFile = path.basename(reqPath); // the requested file 
console.log("VIEWS/STYLES : " + reqPath); 

fs.readdir(__dirname+views+'/styles','utf8',function(err,data){ 
    console.log(data); 
    if(data.includes(reqFile)){ 
     console.log(reqFile+ " Found in data array"); 
      //call function here 
      getStyles(res,reqFile); 
      } 

}); 
+0

Спасибо stujo, я отредактировал сообщение – SunDontShine

+0

Вы пытаетесь вернуть сервер (подавать) файлы стилей в браузер в ответ на веб-запрос? – stujo

+0

Я думаю, что понимаю, что вы сейчас пытаетесь, пожалуйста, проверьте отредактированный ответ – stujo

Смежные вопросы