我想知道如何使异步函数在中间件中工作?通常await在函数前面会完成工作,但在中间件中似乎无法正常工作.
index.js:
const bob= require('../middleware/bob');
router.get('/', [bob(['channel1','channel2','channel3'])], async (req, res) => {
console.log('3')
})
Run Code Online (Sandbox Code Playgroud)
中间件/ bob.js:
async function test(){
setTimeout(() => {
console.log('1')
}, 2000);
}
module.exports = function(channels){
return async(req, res, next) =>{
await test();
console.log('2')
next();
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行此代码时.它将写入控制台:2 3 1
我创建了带有文本输入的简单反应式表单,当提交表单时,我想传递来自文件输入的图像。每次我谷歌我得到教程,他们告诉我如何上传文件,但它是在没有其他输入字段的情况下完成的。我明白如何做到这一点,我不明白如何在一次提交中同时提交我的表单和文件输入。
在我的场景中,我不应该使用响应式表单,而是简单地new FormData()将每个输入附加到其中吗?
如果我能做到,请给我一个简单的例子。
编辑:如何在 Angular2 反应形式中包含文件上传控件?这不是答案。回答市场没有随反应形式一起发布文件,它是单独发布文件。
基本上我已经创建了包含getUserByAlias方法的用户服务。出于测试目的,它除了打印字符串之外什么都不做。我一直在关注视频教程,在教程中他基本上表明您需要确保服务已导入,然后包含在@component 中,然后包含在构造函数中。所以我的文件看起来像这样:
创建-account.component.ts
import { Component, OnInit, NgModule, Injector, Injectable } from '@angular/core';
import { FormBuilder, FormControl, Validators, FormArray, FormGroup, AbstractControl, ValidatorFn, AsyncValidator, AsyncValidatorFn, ValidationErrors, NG_ASYNC_VALIDATORS } from '@angular/forms';
import { faCheck } from '@fortawesome/free-solid-svg-icons';
import { Observable } from 'rxjs';
import { UserService } from '../user.service';
const passwordValidator: ValidatorFn = (fg: FormGroup): ValidationErrors | null => {
var pw = fg.get('password');
var pw2 = fg.get('passwordre');
if(pw2.value.length == 0){
return null
}
if(pw && pw2 && pw.value !== …Run Code Online (Sandbox Code Playgroud) 可能重复:
未定义的索引:文件
嗨,我现在正在学习如何将图像上传到数据库,但我收到此错误/通知
注意:未定义的索引:第19行的C:\ xampp\htdocs\Pildibaas\index.php中的图像
这是我的index.php整码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Image upload</title>
</head>
<body>
<form action="index.php" method="POST" enctype="multipart/form-data">
File:
<input type="file" name="image"> <input type="submit" value="Upload">
</form>
<?php
mysql_connect ("localhost", "root", "") or die (mysql_error());
mysql_select_db ("databaseimage") or die (mysql_error());
?>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
从index.php中删除第19行(此行给出错误):
echo $file = $_FILES['image']['tmp_name'];
Run Code Online (Sandbox Code Playgroud)
从谷歌发现我需要更改tmp文件夹的预先安排,但它已经准备好了它需要的所有预备.
在教程中他没有得到这个错误
谢谢
我开始学习Angular,并发现可以从开发人员工具中看到对后端的每次调用。所以当我得到这样的方法/函数时:
getUser(userId){
return this.http.post('server/page/get-user', {id:userId});
}
Run Code Online (Sandbox Code Playgroud)
然后在某些组件中,我会这样称呼它:
this.userService.getUser(2).subscribe((data)=> {
console.log(data)
})
Run Code Online (Sandbox Code Playgroud)
根据发布的用户ID,基本上返回用户信息(名称,地址等)的内容。如果要获取随机的用户信息,他们难道不可以通过在请求有效载荷中使用随机数来对此端点进行API调用,而只是获取该用户信息吗?
我读到一些解决此问题的方法是使用JWT,它基本上是对有效负载进行加密的方法,但是没有选项可以使此api调用仅在我的应用程序中可用吗?还是至少使其对开发人员工具不可见?