簡體   English   中英

在node.js服務器中顯示node.js文件?

[英]Displaying node.js file inside a node.js server?

嘗試通過我的node.js服務器顯示此node.js文件。 但是,它所做的只是以正確的格式顯示代碼,就像在記事本中一樣,而不是在執行時實際在控制台中顯示其內容。 因此,換句話說,我希望我的node.js文件能夠執行並顯示在瀏覽器中,而不僅僅是在網頁上顯示代碼。

var fs = require('fs'); 
var colour = require('colour');
var array = fs.readFileSync('songs/sister_golden_hair.txt').toString().split("\n"); 

var chordsArray =[];
var lyricsArray =[]; 
var count1 = 0;

for(var line in array) {
    count1++;   
    if (count1 >= 3) {          
        var count2 = 0; 
        lyricsArray[count1-3] = []; 
        chordsArray[count1-3] = [];
        while (array[line].indexOf("[") != -1) {
            lyricsArray[count1-3][count2] = array[line].substring(0, array[line].indexOf("["));
            array[line] = array[line].substring(array[line].indexOf("[")+1, array[line].length);
            chordsArray[count1-3][count2] = array[line].substring(0, array[line].indexOf("]"));
            array[line] = array[line].substring(array[line].indexOf("]")+1, array[line].length);
            count2++;
        }
        if (array[line].length > 0) {
            lyricsArray[count1-3][count2] = array[line];
            chordsArray[count1-3][count2] = "";
        }
    }
    else {
        console.log(array[line]);
    }
}

for (var i = 0; i < chordsArray.length; i++) {
    for (var j = 0; j < chordsArray[i].length; j++) {
        if (j == 0) {
            for (var k = 0; k < lyricsArray[i][j].length; k++) {            
                process.stdout.write(" ");                                  
            }       
            process.stdout.write(chordsArray[i][j].green);                      
        }
        else {
            for (var k = 0; k < lyricsArray[i][j].length - chordsArray[i][j-1].length; k++) {
                process.stdout.write(" ");
            }       
            process.stdout.write(chordsArray[i][j].green);                      
        }
    }
    console.log();
    for (var j = 0; j < lyricsArray[i].length; j++) {
            process.stdout.write(lyricsArray[i][j].yellow);                     
    }
}

這是我正在運行的node.js服務器,我嘗試說的是,如果客戶端轉到“ http:// 127.0.0.1 /sister_golden_hair.html”,則它將顯示上面的node.js。這是node.js服務器:

var http = require('http');
var fs = require('fs');

var counter = 1000;

function serveStaticFile(res, path, contentType, responseCode){
   if(!responseCode) responseCode = 200;
   fs.readFile(__dirname + path, function(err, data){
     if(err){
       res.writeHead(200, {'Content-Type': 'text/plain'});
       res.end('[' + counter++ + ']: ' + '500 INTERNAL FILE ERROR' + '\n');
     }
     else {
       res.writeHead(responseCode , {'Content-Type': contentType});
       res.end(data);

     }
   });
}

http.createServer(function (request,response){
     var path = request.url.replace(/\/?(?:\?.*)$/,'').toLowerCase();

   //write HTTP header

   var page = '';
   switch(path){
     case '/sister_golden_hair.html':
       serveStaticFile(response,
                       '/Problem4.js',
                       'application/javascript');
       break;
}
}).listen(3000, "127.0.0.1");
console.log('Server Running at http://127.0.0.1:3000  CNTL-C to quit');

如果要在瀏覽器中使用node.js代碼,則需要使用諸如browserify之類的東西。

您是否嘗試過使用eval()-https: //developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/eval 請查看警告。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM