服务器和客户端应该如何交互

时间:2018-08-06 12:21:20

标签: javascript

一些信息

我有我的客户端(localhost:8080)和server.js(localhost:3000)。我为server.js做了一些路由(请参见下面的文件)。

问题

现在,如果我尝试访问服务器上的路由,例如localhost:3000/users/4,我得到了预期的结果-创建了4个假用户。但是,如果我尝试将后缀users/4附加到客户端(localhost:8080/users/4),则会出现错误! Cannot GET /users/4。同样,如果尝试其他路线之一,也会收到cannot GET *SOMETHING*错误。

我误解了吗?我是否应该能够将路由附加到客户端网址,然后再次获得响应(响应)? (只要服务器正常运行,或者这不是它的工作方式?)

routes.js (我的所有路由都保存在一个文件中)

    var faker = require("faker");

var appRouter = function (app) {


  app.get("/", function (req, res) {
    res.status(200).send({ message: 'Welcome to our restful API' });
  });

  app.get("/user", function (req, res) {
    var data = ({
      firstName: faker.name.firstName(),
      lastName: faker.name.lastName(),
      username: faker.internet.userName(),
      email: faker.internet.email()
    });
    res.status(200).send(data);
  });

 app.get("/users/:num", function (req, res) {
   var users = [];
   var num = req.params.num;

   if (isFinite(num) && num  > 0 ) {
     for (i = 0; i <= num-1; i++) {
       users.push({
           firstName: faker.name.firstName(),
           lastName: faker.name.lastName(),
           username: faker.internet.userName(),
           email: faker.internet.email()
        });
     }

     res.status(200).send(users);

   } else {
     res.status(400).send({ message: 'invalid number supplied' });
   }

 });
};

module.exports = appRouter;

Server.js

var express = require("express");
var bodyParser = require("body-parser");
var routes = require("./routes/routes.js");
var app = express();

const server_port = process.env.PORT || 3000;


app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));

routes(app);

var server = app.listen(server_port, function () {
    console.log("app running on port.", server.address().port);
});

1 个答案:

答案 0 :(得分:0)

您必须在那儿弄混一些东西。当您打开08-06 23:02:54.664 23221-23288/com.appinnovationsllc.mymapfun E/Google Maps Android API: Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map. 08-06 23:02:54.670 23221-23288/com.appinnovationsllc.mymapfun E/Google Maps Android API: In the Google Developer Console (https://console.developers.google.com) Ensure that the "Google Maps Android API v2" is enabled. Ensure that the following Android Key exists: API Key: Android Application (<cert_fingerprint>;<package_name>): 38:68:DF:46:3F:5D:5A:B5:0F:BC:E4:B1:F9:C2:86:2F:69:5D:84:C1;com.appinnovationsllc.mymapfun MAP SDK for Google is enabled. 时,您正在做的是通过路由http://localhost:8080/users/4localhost:8080的SERVER请求。您方案中的 client 是一个向服务器发出请求的浏览器。

现在,如果您的服务器实际在users/4上运行,那么您必须在localhost:3000上运行另一台服务器。因此,如果您希望能够向localhost:8080发出请求,则需要在http://localhost:8080/users/4上配置服务器以接受该路由,而不是localhost:8080上的路由。