Javascript 如何从Angular js API调用Node.js Web API?
我想将整个HTML转换为JADE,但是((record.name}})不起作用。因此无法获取和打印值。我在这里发布完整的文件 这是我的目录视图: 这是我的JSON文件(customerList.JSON): 这是我的视图(index.html) 这是我的服务(dataService.js): 我必须将index.html转换为index.jade,并且这应该是一个带有Express.js的Node.js API。但是我已经使用Angular.js完成了。请帮助 我发现以下错误:Javascript 如何从Angular js API调用Node.js Web API?,javascript,json,angularjs,node.js,Javascript,Json,Angularjs,Node.js,我想将整个HTML转换为JADE,但是((record.name}})不起作用。因此无法获取和打印值。我在这里发布完整的文件 这是我的目录视图: 这是我的JSON文件(customerList.JSON): 这是我的视图(index.html) 这是我的服务(dataService.js): 我必须将index.html转换为index.jade,并且这应该是一个带有Express.js的Node.js API。但是我已经使用Angular.js完成了。请帮助 我发现以下错误: GET htt
GET http://localhost:3000/js/customerController.js
localhost/:1 GET http://localhost:3000/js/dataService.js
localhost/:1 GET http://localhost:3000/json/customerList.json
angular.js:68 Uncaught Error: [$injector:modulerr] Failed to instantiate module app due to:
Error: [$injector:nomod] Module 'app' is not available! You either misspelled the module name or forgot to load it. If registering a module ensure that you specify the dependencies as the second argument.
http://errors.angularjs.org/1.4.0-beta.5/$injector/nomod?p0=app
at REGEX_STRING_REGEXP (https://code.angularjs.org/1.4.0-beta.5/angular.js:68:12)
at https://code.angularjs.org/1.4.0-beta.5/angular.js:1841:17
at ensure (https://code.angularjs.org/1.4.0-beta.5/angular.js:1765:38)
at module (https://code.angularjs.org/1.4.0-beta.5/angular.js:1839:14)
at https://code.angularjs.org/1.4.0-beta.5/angular.js:4172:22
at forEach (https://code.angularjs.org/1.4.0-beta.5/angular.js:328:20)
at loadModules (https://code.angularjs.org/1.4.0-beta.5/angular.js:4156:5)
at createInjector (https://code.angularjs.org/1.4.0-beta.5/angular.js:4082:11)
at doBootstrap (https://code.angularjs.org/1.4.0-beta.5/angular.js:1514:20)
at bootstrap (https://code.angularjs.org/1.4.0-beta.5/angular.js:1535:12)
http://errors.angularjs.org/1.4.0-beta.5/$injector/modulerr?p0=app&p1=Error…0(https%3A%2F%2Fcode.angularjs.org%2F1.4.0-beta.5%2Fangular.js%3A1535%3A12)REGEX_STRING_REGEXP @ angular.js:68(anonymous function) @ angular.js:4195forEach @ angular.js:328loadModules @ angular.js:4156createInjector @ angular.js:4082doBootstrap @ angular.js:1514bootstrap @ angular.js:1535angularInit @ angular.js:1429(anonymous function) @ angular.js:27245n.Callbacks.j @ jquery-2.1.4.min.js:2n.Callbacks.k.fireWith @ jquery-2.1.4.min.js:2n.extend.ready @ jquery-2.1.4.min.js:2I @ jquery-2.1.4.min.js:2
不太确定节点服务器是如何设置的,但我这里有一个小的工作示例,您可以将其集成到代码中: 服务器(Server.js): 路由(Routes.js): 逻辑(test.js): 在您的package.json中,我假设您有:
"dependencies": {
"body-parser": "^1.13.2",
"express": "^4.13.1",
"morgan": "^1.6.1"
},
虽然您不需要morgan来完成这项工作,但是能够看到您的http请求通过控制台进行测试还是很好的
此解决方案还假设您在根目录中拥有所有内容,并将JSON保存在名为“data.JSON”的文件中,因此根据需要调整文件夹结构和命名。这样,您只需向http://localhost:5001/test
您将收到您的JSON数据
更新:
下面是一些额外的角度代码:
首先,我建议对代码进行一些重组/重构。将应用程序与控制器分开声明。我建议使用三个文件:模块(app.js)、控制器(customerController.js)和服务(dataService.js)
模块(app.js):
控制器(customerController.js):
服务(dataService.js):
按以下顺序包括这些文件:
<script src="/js/app.js"></script>
<script src="/js/customerController.js"></script>
<script src="/js/dataService.json"></script>
另外,不要将脚本文件包含在头部标记中,而是将它们包含在身体的最底部。如果将它们包含在头部,则它们将阻止页面呈现,直到它们完全加载。不太确定节点服务器的设置方式,但我这里有一个小的工作示例,您可以将其集成到您的页面中r代码: 服务器(Server.js): 路由(Routes.js): 逻辑(test.js): 在您的package.json中,我假设您有:
"dependencies": {
"body-parser": "^1.13.2",
"express": "^4.13.1",
"morgan": "^1.6.1"
},
虽然您不需要morgan来完成这项工作,但是能够看到您的http请求通过控制台进行测试还是很好的
此解决方案还假设您在根目录中拥有所有内容,并将JSON保存在名为“data.JSON”的文件中,因此根据需要调整文件夹结构和命名。这样,您只需向http://localhost:5001/test
您将收到您的JSON数据
更新:
下面是一些额外的角度代码:
首先,我建议对代码进行一些重组/重构。将应用程序与控制器分开声明。我建议使用三个文件:模块(app.js)、控制器(customerController.js)和服务(dataService.js)
模块(app.js):
控制器(customerController.js):
服务(dataService.js):
按以下顺序包括这些文件:
<script src="/js/app.js"></script>
<script src="/js/customerController.js"></script>
<script src="/js/dataService.json"></script>
另外,不要将脚本文件包含在头部标记中,而是将它们包含在身体的最底部。如果将它们包含在头部,则它们将阻止页面呈现,直到它们完全加载。不太确定节点服务器的设置方式,但我这里有一个小的工作示例,您可以将其集成到您的页面中r代码: 服务器(Server.js): 路由(Routes.js): 逻辑(test.js): 在您的package.json中,我假设您有:
"dependencies": {
"body-parser": "^1.13.2",
"express": "^4.13.1",
"morgan": "^1.6.1"
},
虽然您不需要morgan来完成这项工作,但是能够看到您的http请求通过控制台进行测试还是很好的
此解决方案还假设您在根目录中拥有所有内容,并将JSON保存在名为“data.JSON”的文件中,因此根据需要调整文件夹结构和命名。这样,您只需向http://localhost:5001/test
您将收到您的JSON数据
更新:
下面是一些额外的角度代码:
首先,我建议对代码进行一些重组/重构。将应用程序与控制器分开声明。我建议使用三个文件:模块(app.js)、控制器(customerController.js)和服务(dataService.js)
模块(app.js):
控制器(customerController.js):
服务(dataService.js):
按以下顺序包括这些文件:
<script src="/js/app.js"></script>
<script src="/js/customerController.js"></script>
<script src="/js/dataService.json"></script>
另外,不要将脚本文件包含在头部标记中,而是将它们包含在身体的最底部。如果将它们包含在头部,则它们将阻止页面呈现,直到它们完全加载。不太确定节点服务器的设置方式,但我这里有一个小的工作示例,您可以将其集成到您的页面中r代码: 服务器(Server.js): 路由(Routes.js): 逻辑(test.js): 在您的package.json中,我假设您有:
"dependencies": {
"body-parser": "^1.13.2",
"express": "^4.13.1",
"morgan": "^1.6.1"
},
虽然您不需要morgan来完成这项工作,但是能够看到您的http请求通过控制台进行测试还是很好的
此解决方案还假设您在根目录中拥有所有内容,并将JSON保存在名为“data.JSON”的文件中,因此根据需要调整文件夹结构和命名。这样,您只需向http://localhost:5001/test
您将收到您的JSON数据
更新:
下面是一些额外的角度代码:
首先,我建议对代码进行一些重组/重构。将应用程序与控制器分开声明。我建议使用三个文件:模块(app.js)、控制器(customerController.js)和服务(dataService.js)
模块(a)
"dependencies": {
"body-parser": "^1.13.2",
"express": "^4.13.1",
"morgan": "^1.6.1"
},
var app = angular.module('myApp', []);
angular.module('myApp').controller('CustomerController', ['DataService',
function(DataService) {
var vm = this;
activate();
function activate() {
DataService.test()
.then(function(results) {
vm.data = results;
}, function(error) {})
.finally(function() {
});
}
}
]);
angular.module('myApp').factory("DataService",[ '$q', '$timeout', '$http',
function($q, $timeout, $http) {
return {
test: function() {
return $http({
url: 'test',
method: "GET",
headers: {
'Content-Type': 'application/json'
}
}).success(function(data, status, headers, config) {
console.log("Success!");
return data;
}).error(function(data, status, headers, config) {
console.log("Error.");
});
}
};
}
]);
<script src="/js/app.js"></script>
<script src="/js/customerController.js"></script>
<script src="/js/dataService.json"></script>