在本文中,我们将为您详细介绍angularjs–如何以角度读取nodejs流?的相关知识,并且为您解答关于angular读取本地json的疑问,此外,我们还会提供一些关于angularjsexpres
在本文中,我们将为您详细介绍angularjs – 如何以角度读取nodejs流?的相关知识,并且为您解答关于angular读取本地json的疑问,此外,我们还会提供一些关于angularjs express nodejs的关系、angularjs – Angular CLI:无法读取null的属性’config’、angularjs – Dockerize你的Angular NodeJS应用程序、angularjs – Node.js / Angular.js管理员授权的路由的有用信息。
本文目录一览:- angularjs – 如何以角度读取nodejs流?(angular读取本地json)
- angularjs express nodejs的关系
- angularjs – Angular CLI:无法读取null的属性’config’
- angularjs – Dockerize你的Angular NodeJS应用程序
- angularjs – Node.js / Angular.js管理员授权的路由
angularjs – 如何以角度读取nodejs流?(angular读取本地json)
DockerService.get().pull('my/image',function(err,stream) { if (err) { return res.badRequest(err); } else { return stream.pipe(res); } });
这是使用$http.get从angularjs客户端触发的:
pull: function() { var url = ENV.apiEndpoint + '/docker/pull'; var promise = $http.get(url).success(function(response) { return response; }).error(function(data,status) { }); return promise; }
但是我无法读取流.从角度我得到一个错误消息:
SyntaxError: Unexpected token { at Object.parse (native) at fromJson (file://build/vendor/angular/angular.js:1065:14) at defaultHttpResponseTransform (file://build/vendor/angular/angular.js:8579:16) at file://build/vendor/angular/angular.js:8664:12 at forEach (file://build/vendor/angular/angular.js:323:20) at transformData (file://build/vendor/angular/angular.js:8663:3) at transformResponse (file://build/vendor/angular/angular.js:9389:23) at processQueue (file://build/vendor/angular/angular.js:13189:27) at file://build/vendor/angular/angular.js:13205:27 at Scope.$get.Scope.$eval (file://build/vendor/angular/angular.js:14401:28)
我找不到任何有关如何处理角度流的信息.你能帮我吗?
头:
响应太大而无法在此处显示,因此这是它的第一部分:
预习:
解决方法
据我所知,流入浏览器的最佳模块是oboe.js.您可以使用RonB/angular-oboe加上一些代码来缓冲每一行,然后将ndjson语法解析为JS对象流.
angularjs express nodejs的关系
nodejs和express的关系
express是nodejs的框架,使nodejs更易使用。和ruby和rails的关系一样
angular 如何在express中使用
angular 是一个javascript库,和express没啥关系。只要放在http服务器中即可使用。可以使用apache服务器,也可以使用express提供的http服务器,设置static文件夹,并放入static文件夹即可。
用express 4.x生成的项目如何运行?
DEBUG=angularexpress ./bin/www node ./bin/www nodejs app.js
app.js需要增加如下语句才能运行
http.listen(3000, function(){ console.log(''listening on *:3000''); });
5. express的路由顺序(修改了)
app.use(express.static(path.join(__dirname, ''public'')));
//app.use(''/'', routes);
app.use(''/users'', users);
app.get(''/'', function (req, res) {
res.sendfile(''index.html'');
});
修改这个路由 / 没有起作用
优先使用static文件夹中的index.html,再往下查找路由。
6. angularjs不能生效的原因排查:
a. angularjs不能从google下载,下载下来放在本地可以解决此问题
b. angular.module(''todo'', [])和<html ng-app="todoApp ">不一致
angularjs – Angular CLI:无法读取null的属性’config’
Cannot read property ‘config’ of null TypeError: Cannot read property
‘config’ of null
at Class.run (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/tasks/build.js:16:56)
at Class.run (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/commands/build.js:143:26)
at Class. (/Users/hyadav/Documents/projects/web-app/node_modules/@angular/cli/ember-cli/lib/models/command.js:134:17)
at process._tickCallback (internal/process/next_tick.js:109:7)
的package.json
"scripts": { "ng": "ng","start": "ng serve","build": "ng build","test": "ng test","lint": "ng lint","e2e": "ng e2e" },"private": true,"dependencies": { "@angular/animations": "^4.0.3","@angular/cli": "^1.0.1","@angular/common": "^4.0.3","@angular/compiler": "^4.0.3","@angular/compiler-cli": "^4.0.3","@angular/core": "^4.0.3","@angular/forms": "^4.0.3","@angular/http": "^4.0.3","@angular/material": "^2.0.0-beta.3","@angular/platform-browser": "^4.0.3","@angular/platform-browser-dynamic": "^4.0.3","@angular/platform-server": "^4.0.3","@angular/router": "^4.0.3","core-js": "^2.4.1","hammerjs": "^2.0.8","rxjs": "^5.2.0","typescript": "^2.2.2","zone.js": "^0.8.4" },"devDependencies": { "@angular/cli": "^1.0.1","@angular/compiler-cli": "^2.4.0","@types/jasmine": "2.5.38","@types/node": "~6.0.60","codelyzer": "~2.0.0","jasmine-core": "~2.5.2","jasmine-spec-reporter": "~3.2.0","karma": "~1.4.1","karma-chrome-launcher": "~2.0.0","karma-cli": "~1.0.1","karma-coverage-istanbul-reporter": "^0.2.0","karma-jasmine": "~1.1.0","karma-jasmine-html-reporter": "^0.2.2","protractor": "~5.1.0","ts-node": "~2.0.0","tslint": "~4.4.2","typescript": "~2.2.2" }
创建一个名为.angular-cli.json的新文件并插入:
{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json","project": { "name": "PROJECT_NAME" },"apps": [ { "root": "src","outDir": "dist","assets": [ "assets","favicon.ico" ],"index": "index.html","main": "main.ts","polyfills": "polyfills.ts","test": "test.ts","tsconfig": "tsconfig.app.json","testTsconfig": "tsconfig.spec.json","prefix": "app","styles": [ "styles.css" ],"scripts": [],"environmentSource": "environments/environment.ts","environments": { "dev": "environments/environment.ts","prod": "environments/environment.prod.ts" } } ],"e2e": { "protractor": { "config": "./protractor.conf.js" } },"lint": [ { "project": "src/tsconfig.app.json" },{ "project": "src/tsconfig.spec.json" },{ "project": "e2e/tsconfig.e2e.json" } ],"test": { "karma": { "config": "./karma.conf.js" } },"defaults": { "styleExt": "css","component": {} } }
如果从angular-cli创建新项目,您还可以找到此json的副本.
angularjs – Dockerize你的Angular NodeJS应用程序
我们有一个前端应用程序.
它是用Angular(html css javascript)编写的,需要由webserver(Nginx)托管.
Angular正在与将与后端通信的NodeJs服务器进行通信.
现在我们必须在Docker中运行它.
>我们想要使用2个Docker容器:一个使用nodejs,另一个使用Nginx,让它们一起工作
那么可以在一个存储库中编写2个dockerfiles吗?
主要的想法是为nodejs提供1个dockerfile,它还运行bower install,npm install,…
这将是这样的:
# Create app directory
RUN mkdir -p /usr/src/www
workdir /usr/src/www
RUN npm install -g bower
RUN npm install -g gulp
# Install app dependencies
copY . /usr/src/www/
RUN bower install
RUN npm install
RUN gulp build
EXPOSE port
CMD [ "node", "server.js" ]
还有一个dockerfile,我们在其中运行一个Nginx-webserver,但也包含一个Nginx.conf,所以它可以指向我们node.js-container中的right / dist文件夹
Nginx的dockerfile如下所示:
# Set Nginx base image
FROM Nginx
# copy custom configuration file from the current directory
copY Nginx.conf /etc/Nginx/Nginx.conf
Nginx.conf的一个例子
location ~* /dist {
proxy_pass http://nodejs:port;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
解决方法:
在我看来,使用2个泊坞容器是最佳选择,每个容器设计的单一责任值得遵循.
每个项目必须创建多个容器是非常常见的:
>数据库
>后端服务器
>前端服务器
一种方法是为docker定义和每个docker上下文创建一个文件夹,创建一个脚本docker_build.sh,用于准备docker上下文(复制所需的所有工件:libs,源代码等),最后构建docker.
project_root/
|----src/
|----docker/
|----|----angular/
|----|----|-----Dockerfile
|----|----|-----docker_build.sh
|----|----nodejs/
|----|----|-----Dockerfile
|----|----|-----docker_build.sh
docker_build.sh的一个例子
#!/bin/bash
# create temp directory for building
mkdir DockerBuildTempPath/
# copy files to temp directory
cp -arv Dockerfile DockerBuildTempPath/
cp -arv ../../src/ DockerBuildTempPath/
# ... etc
cd DockerBuildTempPath
#build image
docker build -t myapp .
# remove temp directory
cd ..
rm -r ./DockerBuildTempPath/
angularjs – Node.js / Angular.js管理员授权的路由
我想让某些路由/ admin / etc …只能由也是admin的登录用户访问.我在mongo中设置了一个isAdmin标志.我是nodejs的新手,想知道检查这个的最佳方法是什么.我是否在路线的角度边做?或者我可以以某种方式创建基于权限的身份验证令牌?作为参考,我遵循MEAN机器书中的代码,特别是在这里 –
https://github.com/scotch-io/mean-machine-code/tree/master/17-user-crm
解决方法
使用JWT,您可以在令牌中嵌入有关用户的声明,如下所示:
var jwt = require('jsonwebtoken'); var token = jwt.sign({ role: 'admin' },'your_secret');
要映射表达路由的权限,可以使用connect-roles构建清晰且可读的授权中间件功能.假设您的JWT是在HTTP标头中发送的,并且您拥有以下(天真)授权中间件:
// Naive authentication middleware,just for demonstration // Assumes you're issuing JWTs somehow and the client is including them in headers // Like this: Authorization: JWT {token} app.use(function(req,res,next) { var token = req.headers.authorization.replace(/^JWT /,''); jwt.verify(token,'your_secret',function(err,decoded) { if(err) { next(err); } else { req.user = decoded; next(); } }); })
这样,您就可以在路由上强制执行授权策略,如下所示:
var ConnectRoles = require('connect-roles'); var user = new ConnectRoles(); user.use('admin',function(req) { return req.user && req.user.role === 'admin'; }) app.get('/admin',user.is('admin'),function(req,next) { res.end(); })
请注意,有更好的选择发布&验证JWT,如express-jwt,或使用passport和passort-jwt
我们今天的关于angularjs – 如何以角度读取nodejs流?和angular读取本地json的分享就到这里,谢谢您的阅读,如果想了解更多关于angularjs express nodejs的关系、angularjs – Angular CLI:无法读取null的属性’config’、angularjs – Dockerize你的Angular NodeJS应用程序、angularjs – Node.js / Angular.js管理员授权的路由的相关信息,可以在本站进行搜索。
本文标签: