簡體   English   中英

如何運行簡單節點 js api?

[英]how to run Simple node js api?

#server.js

var express = require('express');
var app = express();
var fs = require("fs");
app.get('/listUsers', function (req, res) {
   fs.readFile( __dirname  + "users.json", 'utf8', function (err, data) {
      console.log( data );
      res.end( data );
   });
})
var server = app.listen(8081, function () {
   var host = server.address().address
   var port = server.address().port
   console.log("Example app listening at http://%s:%s", host, port)
})

這是我的 server.js 代碼,我從中調用 user.json 文件獲取數據

#user.json

{
   "user1" : {
      "name" : "mahesh",
      "password" : "password1",
      "profession" : "teacher",
      "id": 1
   },
   "user2" : {
      "name" : "suresh",
      "password" : "password2",
      "profession" : "librarian",
      "id": 2
   },
   "user3" : {
      "name" : "ramesh",
      "password" : "password3",
      "profession" : "clerk",
      "id": 3
   }
}

這是我的文件,其中有我的用戶列表

但是當我運行應用程序時,我沒有得到任何數據

首先在嘗試獲取文件path時使用路徑。

   path.resolve(__dirname, "users.json");

其次,添加錯誤處理,因為您可能會收到錯誤,這就是您看不到數據的原因。

   fs.readFile(path.resolve(__dirname, "users.json"), 'utf8', function (err, data) {
      if (err) {
          res.status(500);
          res.end(err.message);

          console.error(err);
          return;
      }
      console.log( data );
      res.end( data );
   });

這應該使它按要求工作,

  • 添加了 ES6 語法
  • 添加了錯誤處理
const express = require('express');
const app = express();
const fs = require("fs");

app.get('/listUsers', (req, res) => {
    fs.readFile('user.json', (err,data) => {
        if(err) res.status(500).send(err.message)
        else {
            let displayData = JSON.parse(data);
            //console.log(displayData)
            res.status(200).send(displayData);
        }
    });
})

app.listen(8081,() => console.log("Example app listening at port 8081"))

不使用fs

const user = require('./user.json')

app.get('/listUsers', (req, res) => {
        res.send(user);
})

試試這個:

fs.readFile( __dirname  + "/user.json", 'utf8', function (err, data) {
      console.log( data );
      res.end( data );
   });
  1. 您可能只是輸入錯誤的文件名 - 您有 users.json 而不是 user.json

  2. 在文件名前添加 /

  3. 添加錯誤處理。

暫無
暫無

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

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