在不使用文件扩展名的情况下使用Node.JS在浏览器中显示json文件

c0d3r

我已经使用javascript和Node.js制作了一个服务器,该服务器在我的浏览器中显示了一个JSON文件。

但是,我想在http://localhost:8888/Test.json没有扩展名的情况下呼叫该站点例如:http://localhost:8888/Test

这是我的服务器代码:

var     http = require("http"),
        url = require("url"),
        path = require("path"),
        fs = require("fs")
        port = process.argv[2] || 8888;
        file = (__dirname + '/Test.json');

http.createServer(function(req, res) {

  var uri = url.parse(req.url).pathname, filename = path.join(process.cwd(), uri);

  var contentTypesByExtension = {
    '.html': "text/html",
    '.css':  "text/css",
    '.js':   "text/javascript",
    '.json': "application/json" //Edited due to answer - Still no success :(
  };

  path.exists(filename, function(exists) {

    if(!exists) {
      res.writeHead(404, {"Content-Type": "text/plain"});
      res.write("404 Not Found\n");
      res.end();
      return;
    }

    fs.readFile(file, 'utf8', function (err, file) {
            if (err) {
                console.log('Error: ' + err);
            return;
        }

        file = JSON.parse(file);
        console.dir(file);

        var headers = {};
        var contentType = contentTypesByExtension[path.extname(file)];
        if (contentType) headers["Content-Type"] = contentType;
        res.writeHead(200, headers);
        res.write(JSON.stringify(file, 0 ,3));
        res.write
        res.end();
        });    

  });

}).listen(parseInt(port, 10));

console.log("JSON parsing rest server running at\n  => http://localhost:" + 
port + "/\nPress CTRL + C to exit and leave");

我怎样才能做到这一点?我应该使用路线/快车吗?有人有什么建议吗?

先感谢您!

干杯,弗拉德

c0d3r

我现在使用了sledgehammer方法,并注释掉了以下代码片段:

if(!exists) {
      res.writeHead(404, {"Content-Type": "text/plain"});
      res.write("404 Not Found\n");
      res.end();
      return;
    }

现在可以只调用: http://localhost:8888/Test

干杯,弗拉德

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Node.js在浏览器中显示JSON文件

Flask - 如何在不使用 file.content_type 的情况下获取文件扩展名

如何使用multer和node js在不检查文件扩展名的情况下确定文件的真实类型

在不使用任何扩展名的情况下,如何在GNOME面板中显示电池百分比?

在不使用批处理文件的浏览器的情况下打开URL

引用外部CSS文件而不使用`.css`扩展名

在不使用LVM的情况下添加HDD时扩展文件系统?

如何在不使用PowerShell扩展的情况下知道.cab文件内容的大小?

浏览器未显示JSON文件-Setheader Node.js

使用ArcGIS JS API在浏览器中显示ArcGIS形状文件(* .shp)

浏览器中的Javascript文件是否需要.js扩展名?

如何在Windows上使用c ++在不带<dirent.h>的情况下获取具有特定扩展名的所有文件的列表

文件列表的情况下如何查找文件扩展名?

仅在知道扩展名的情况下从zip文件中提取单个文件

ERb文件在浏览器中显示为HTML文件

在Windows上没有扩展名的情况下,如何确定文件类型?

如何在没有php扩展名的情况下加载php文件

如何在不查看Python扩展名的情况下检查文件是否存在?

Windows 10默认情况下是否隐藏已知文件类型的扩展名?

.Net Core 2.1在Web浏览器中显示静态JSON文件

Three.js html文件未在Eclipse的“ Web浏览器”中显示

如何在浏览器中不使用base-href文件夹名称的情况下访问Angular 8网站

在不使用扫描仪的情况下从文件读取

在不使用文件的情况下检索SAS日志

在不使用其他功能文件调用的情况下

在不使用Serializable()的情况下将对象写入文件

文件被下载而不是显示在浏览器中

浏览器中的Azure文件存储URL显示InvalidHeaderValue

如何在浏览器中显示PDF文件