使用angular 2模拟ajax响应的最佳方法是什么?

时间:2017-01-31 13:29:34

标签: node.js angular mocking

我有一个java后端,支持来自UI的所有调用。

对于UI阶段我正在使用nodeJS来运行它并检查一切是否在localhost:4200,当需要将它发布到tomcat服务器时,将dist文件夹复制到tomcat的webapp然后应用程序可在localhost:8080获得。

问题是,如果在nodeJS上运行UI端以模拟对UI中所做的ajax调用的所有响应,并且在将dist文件夹发布到tomcat时,它将是一个简单而简单的方法,它将是透明的并将与服务器端合作。

我认为它在nodeJS中设置一个额外的服务器并映射所有调用并从那里返回静态json。或者还有其他简单方法吗?

1 个答案:

答案 0 :(得分:0)

         "scripts": {
        "start": "start npm run start-server && gulp serve",
        "start-server": "node src/server/app.js",
        "start-client": "ng serve",
        "lint": "tslint \"src/**/*.ts\"",
        "test": "ng test",
        "pree2e": "webdriver-manager update",
        "e2e": "protractor"
        },
        "devDependencies": {
        "express": "^4.14.0"
        }

在项目文件夹中创建server.js文件并添加以下代码

        var express = require("express");
        var app = express();
        var router = require('express').Router();
        var data = require('./server/api/users/data.json');

       app.get("/", function(req, res) {
       res.send(data)
       });

    var port = process.env.PORT || 3000;
    app.listen(port, function() {
      console.log("Listening on " + port);
    });

为模拟数据命名服务器创建一个文件夹 - > api-> users-> data.json并输入以下数据

    [{
    "name":"Hello"
    },
    {
     "name":"World"
    }]

要使用模拟数据,您需要安装快速服务器。在package.json中添加以上行并运行命令npm install,安装完成后,使用npm start。 npm start将启动你的gulp服务(或根据服务器安装使用适当的cmd)并表达服务器。