簡體   English   中英

Postman GET url 請求測試簡單服務器 API

[英]Postman GET url request test for simple server API

I'm learning server-side javascript and am trying to test a GET request using postman where the server (server.js) receives a request for products.html (products.js) and returns the products JSON.

我的文件是通過 npm 打包的,products.js 保存在 node_modules 中,當我在命令中運行 server.js 然后在瀏覽器中打開 localhost:3000 時,我可以看到它正在連接。 但是,瀏覽器返回 404,命令顯示 400。

我覺得這可能是語法或文件路徑錯誤(或者我可能只是不知道如何使用郵遞員),但我一直在繞圈子試圖修復。 有什么突出的錯誤/關於如何糾正的任何建議?

//server.js
var fs = require('fs');
var http = require('http');
var url = require('url');
var product_mgr = require('product_manager'),
path=require('path');


//create server that listens on port 3000
http.createServer(function(req, res) {
    var urlObj = url.parse(req.url, true, false);
    var filename = urlObj.pathname;
    fs.readFile(filename, function (err, data) {
      // if url not returned, show error code 404
      if (err) {
        res.writeHead(404, {'Content-Type': 'application/json'});
        return res.end("404 Not Found");
      } else {
      // if url returned, show success code 200
      res.writeHead(200, {'Content-Type': 'application/json'});
      res.write(data);
      return res.end();
    }});
}).listen(3000, function() {
  console.log('Listening on port 3000.');
});
//products.js
//create class that represents a product
//include name, price, description and qty
class Product {
    constructor(name, price, description, qty) {
        this.name = name;
        this.price = price;
        this.description = description;
        this.qty = qty;
    };
};

var product_1 = new Product('Yo Yo', 2.99, 'Spinning Toy', 40);
var product_2 = new Product('Hot Wheel', 1.99, 'Tiny Toy Car', 30);
var product_3 = new Product('Glove', 23.49, 'Baseball Glove', 12);
var productArray = [product_1, product_2, product_3];

//create function called products which returns JSON array of product info
function products() {
    return JSON.stringify(productArray)
};

//export products function
exports.products = products;
var fs = require('fs');
var http = require('http');
var url = require('url');
var product_mgr = require('product_manager');


http.createServer(function(req, res) {
    var urlObj = url.parse(req.url, true, false);
    var filename = "." + urlObj.pathname;
    if (req.method == "GET" && req.url == "/products.html") {
        res.writeHead(200, {
            'Content-Type': 'application/json'
        });
        res.end(JSON.stringify({
            error: null
        }));
    } else {
        res.writeHead(404, {
            'Content-Type': 'application/json'
        });
        res.end(JSON.stringify({
            error: "Invalid Request"
            }));
    }
}).listen(3000, function() {
    console.log('Listening on port 3000.');
});

暫無
暫無

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

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