我尝试使用ng new angular-6-boilerplateangular-cli最新版本创建一个新的Angular项目,但我不能再这样做了.我正在使用windows终端来创建我的项目,但是我收到了这个错误.
原理图输入不对Schema进行验证:{"name":"angular-6-boilerplate","version":"6.1.2","newProjectRoot":"projects","skipInstall":false,"linkCli": false,"skipGit":false,"commit":null}错误:
Run Code Online (Sandbox Code Playgroud)Data path ".name" should match format "html-selector".
为什么我收到此错误?
1)用户通过身份验证后,如何在Cookie中设置令牌,以便用户不会在每个请求中发送用户名密码?
2)向客户端发送令牌的理想方式是什么?
apiRoutes.post('/authenticate', function (req, res) {
User.findOne({
email: req.body.email
}, function (err, user) {
if (err) throw err;
if (!user) {
res.send({ success: false, message: 'Authentication failed. User not found.' });
} else {
// Check if password matches
user.comparePassword(req.body.password, function (err, isMatch) {
if (isMatch && !err) {
// Create token if the password matched and no error was thrown
var claims = {
sub: user._id,
email:user.email,
iss: 'https://NodeLogin.com',
permissions: user.role
};
var token = jwt.sign(claims, config.secret, { …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 multer-s3 将图像上传到 AWS S3。一切正常(即上传视频、图像和文件),但还不完整。我不知道如何跟踪上传进度或百分比。
我的 multer 代码被视为这样的中间件
const multer = require('multer');
const AWS = require('aws-sdk');
const multerS3 = require('multer-s3');
var s3 = new AWS.S3();
const s3Storage = multerS3({
s3 : s3,
bucket : 'app-bucket',
acl : 'public-read',
key : function (req, file, callback) {
callback(null, file.originalname);
}
});
module.exports.s3Upload = multer({ storage: s3Storage });
Run Code Online (Sandbox Code Playgroud)
然后我将中间件附加到我的路线中,如下所示:
router.route('/image/upload').get(uploadController.getUploadImageController)
.post(middleware.s3Upload.single('myImage'),
uploadController.postUploadPhotoToAlbumController );
Run Code Online (Sandbox Code Playgroud)
然后在我的控制器上,有一个简单的发布请求,它将保存数据库的路径:
module.exports.postUploadPhotoToAlbumController = (req, res) => {
let query = Images.findById({ _id: req.params.id });
query.exec((err, images) => {
if(err){
return …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的 MEAN 应用程序中实现文件上传。我的后端(Node 和 Express)和前端(Angular)是分开部署的。我需要的是通过Angular将文件上传到amazon s3,成功上传后获取地址目的地,然后将文件目的地保存到变量中。
有没有简单的方法来实现这个?假设我有一个这样的表格
<form [formGroup]="form" (ngSubmit)="onSubmit()">
<input type="file" id="myImage" (change)="onFileChange($event)" #fileInput>
<hr>
<div class="text-right">
<button type="submit" class="btn btn-primary">Actualizar perfil</button>
</div><br>
</form>
Run Code Online (Sandbox Code Playgroud)
然后这段代码将在我的组件上(只是为了测试我可以获取文件)
@ViewChild('fileInput') fileInput: ElementRef;
createForm() {
this.form = this.formBuilder.group({
'myImage': null
});
}
onFileChange(event) {
let reader = new FileReader();
if(event.target.files && event.target.files.length > 0) {
let file = event.target.files[0];
reader.readAsDataURL(file);
reader.onload = () => {
this.form.get('myImage').setValue({
filename: file.name,
filetype: file.type,
value: reader.result.split(',')[1]
})
};
}
}
onSubmit() {
const formModel = this.form.value;
this.loading = …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个将文本转换为其他语言的Angular自定义管道。所有数据都是动态的。
这是我的服务:
import { Http } from "@angular/http";
import { Injectable } from "@angular/core";
import { Observable, of } from "rxjs";
import { map, filter, switchMap, catchError } from 'rxjs/operators';
import { Router } from '@angular/router';
import { environment } from '../../../../environments/environment';
@Injectable({
providedIn: 'root'
})
export class TranslationService {
constructor(private http: HttpClient,
private router: Router) {
}
translateRequest(word?): Observable<any>{
let key = environment.yandexKey;
return this.http
.get(`https://translate.yandex.net/api/v1.5/tr.json/translate?key=${key}&text=${word}&lang=en-fr`)
.pipe(
map(res => res),
catchError(this.handleError)
);
}
// error handler
private handleError(error:any, caught:any): …Run Code Online (Sandbox Code Playgroud) 我需要从socket.io获取连接的用户或客户端的列表以进行实时聊天。
我设法显示了连接到我的路由/ API(localhost:3003 / chat)的客户端列表。如图所示,将显示访问此路由的人(是否经过授权)。我的问题在于初始访问权限,或者如果您尝试刷新浏览器,客户端将看不到当前连接的用户或客户端连接的历史记录。
这是服务器端socket.io的示例代码,
module.exports.initializeSocketIO = (io) => {
io.on('connection', (socket) => {
socket.on('connectedUser', (users) =>{
socket.name = users;
io.emit('connectedUser', users);
console.log(users + ' has joined the chat.');
});
socket.on('disconnect', (user) => {
io.emit('disconnect', user);
console.log(socket.name + ' has left the chat.');
});
socket.on('chatMessage', (from, msg) => {
io.emit('chatMessage', from, msg);
console.log('Message From: ' + from + '\n -' + msg);
});
socket.on('showTypingUser', (user) => {
io.emit('showTypingUser', user);
});
});
};
Run Code Online (Sandbox Code Playgroud)
这是我的客户端socket.io示例代码
var socket = io();
socket.on('connectedUser', …Run Code Online (Sandbox Code Playgroud) angular ×3
node.js ×3
express ×2
typescript ×2
amazon-s3 ×1
angular-cli ×1
angular6 ×1
asynchronous ×1
javascript ×1
jwt ×1
multer ×1
multer-s3 ×1
passport.js ×1
socket.io ×1