我在这里查看了很多答案,但没有一个解决了我的错误。这是我到目前为止所尝试过的。
环境:
win 10 pro v2004 build 19041.29
node v12.14.1
Run Code Online (Sandbox Code Playgroud)
用于netstat -a -b查看此端口是否正在被任何其他进程使用。没有进程正在使用此端口,也尝试切换端口以3000得到相同的错误。
我使用docker-desktop和wsl2,所以也一一禁用了所有虚拟网络适配器。杀死所有其他 docker 服务后尝试。
重新启动了我的电脑。
npm start尝试以管理员身份通过 powershell运行
服务器.js
const app = require('./src/app');
const port = process.env.PORT || 3000;
app.listen(port, () => {
console.log(`Litening on port ${port}...`);
});
Run Code Online (Sandbox Code Playgroud)
错误:
events.js:200
throw er; // Unhandled 'error' event
^
Error: listen EACCES: permission denied 0.0.0.0:3001
at Server.setupListenHandle [as _listen2] (net.js:1289:21)
at listenInCluster (net.js:1354:12)
at Server.listen (net.js:1442:7)
at Function.listen (C:\Users\sujeet\project\node_modules\express\lib\application.js:618:24)
at Object.<anonymous> (C:\Users\sujee\CustomerAPIs\server.js:4:5)
at Module._compile (internal/modules/cjs/loader.js:955:30) …Run Code Online (Sandbox Code Playgroud) SyntaxError: Unexpected string in JSON at position 59当 json 数据的格式无效时,我收到html 格式的错误。我不知道为什么它给我 html 而不是错误对象。
我已经设置了我的标题如下。
//header middlewares
app.use((req, res, next) => {
res.setHeader('Content-Type', 'application/json');
res.setHeader("Access-Control-Allow-Origin", "*");
next();
});
Run Code Online (Sandbox Code Playgroud)
我想捕获错误并以以下格式发送消息。
{
"status":404,
"message":Unexpected string in JSON at position 59
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的错误。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>SyntaxError: Unexpected string in JSON at position 59<br> at JSON.parse (<anonymous>)<br> at parse (C:\Users\mydirectory\auth\node_modules\body-parser\lib\types\json.js: 89: 19)<br> at C:\Users\mydirectory\auth\node_modules\body-parser\lib\read.js: 121: 18<br> at invokeCallback (C:\Users\mydirectory\auth\node_modules\raw-body\index.js: 224: 16)<br> …Run Code Online (Sandbox Code Playgroud) 我浏览了 React Refs 的 React 文档,这就是它所说的createRef()
createRef() 接收底层 DOM 元素作为其当前属性。当 ref 属性用于自定义类组件时, ref 对象接收组件的已安装实例作为其当前 .
我对此有一些疑问。首先看看下面的组件。
import React, { Component } from "react";
class ImageCard extends Component {
constructor(props) {
super(props);
this.imageRef = React.createRef();
console.log("Called in constructor", this.imageRef);
}
componentDidMount() {
console.log("Called when component did mount ", this.imageRef);
}
render() {
const { description, urls } = this.props.image;
return (
<div>
<img ref={this.imageRef} src={urls.regular} alt={description} />
</div>
);
}
}
export default ImageCard;
Run Code Online (Sandbox Code Playgroud)
因此,在构造函数中,我创建了一个React Ref,并分配给了一个名为 …
我有以下对象数组,
[{
a: 1,
created_on: '2021-04-23 10:00:01',
}, {
b: 1,
created_on: '2021-04-24 09:03:01',
}, {
b: 1,
created_on: '2021-04-24 13:03:01',
}]
Run Code Online (Sandbox Code Playgroud)
首先,我需要使用忽略时间的日期分组。
所以,
{
"2021-04-23": [{
a: 1,
created_on: '2021-04-23 10:00:01',
}],
....
}
Run Code Online (Sandbox Code Playgroud)
如果是类似的日期created_on: '2021-04-23',我可以使用lodash/groupBy.
我仍然可以使用它,但现在它涉及一些应用条件来将它们转换created_on为日期格式。
此外,我还需要按每个按日期结果分组的那些分组,以便它们created_on落在一个时间间隔内。
"SALES_SLOTS": [
{
"slot": "00:00-04:00"
},
{
"slot": "04:00-08:00"
},
{
"slot":"08:00-12:00"
},
{
"slot":"12:00-16:00"
},
{
"slot":"16:00-20:00"
},
{
"slot":"20:00-24:00"
}
],
Run Code Online (Sandbox Code Playgroud)
所以,如果created_on: '2021-04-23 10:00:01',它应该进入组,
{
"08:00-12:00": [{
a: 1, …Run Code Online (Sandbox Code Playgroud) 如果我有一个元素数组并且我想对它们进行并行操作。
我会用promise.all().
我知道promise.all()接受一系列的承诺。如果我错了请纠正我,我不这么认为。
这里,说得很清楚了。
Promise.all() 方法返回单个 Promise,当作为可迭代对象传递的所有 Promise 都已实现时,或者当可迭代对象不包含 Promise 时,或者当可迭代对象包含已实现的 Promise 和已返回的非 Promise 时,该 Promise 会被实现。 。它会因为第一个被拒绝的 Promise 的原因而拒绝,或者如果第一个参数使用 try/catch/throw 块捕获了其中的错误,则使用第一个参数捕获的错误。
所以,是的,我们可以将简单的函数传递给promise.all(),如果它们返回,它就会解析,如果它们抛出错误,它就会拒绝。
现在看下面的代码。
const promises = todayAssignedJobs.map(async todayAssigned => {
const [leaderboard, created] = await Leaderboard.findOrCreate({...});
if (!created) {
const rating = (todayAssigned.rating + leaderboard.rating * leaderboard.jobs_completed) / (leaderboard.jobs_completed + 1);
const commission = todayAssigned.commission + leaderboard.commission;
const jobsCompleted = leaderboard.jobs_completed + 1;
await Leaderboard.update({
rating,
commission,
jobs_completed: jobsCompleted,
updated_by: 'system',
}, …Run Code Online (Sandbox Code Playgroud) 我希望路由只能由版主或管理员访问。我尝试在路线上应用数组中间件。但是,如果一个中间件无法申请,它只会拒绝访问。
所以,假设我是管理员或版主,我可以访问/store-detail.
但在这里,如果我是管理员,我无法访问它,因为它也会检查主持人。
这里两个中间件admin和 都moderator被应用。
我希望它适用admin或moderator.
我怎样才能只应用其中之一?
这样只有管理员或版主才能访问它。
verify中间件是验证jwt token。
路由器
router.post('/store-detail', [verify, admin, moderator], async (req, res) => {
//validate data
}}
Run Code Online (Sandbox Code Playgroud)
中间件
const User = require('../models').User
module.exports = async function (req, res, next) {
// 401 Unauthorized
const user = await User.findOne({ where: { id : req.user.id}})
if(user.role !== 'moderator') return res.status(403).send({error: { status:403, message:'Access denied.'}});
next();
}
Run Code Online (Sandbox Code Playgroud)
const User = require('../models').User
module.exports = async function …Run Code Online (Sandbox Code Playgroud) 我一直在学习烧瓶。我还在其中创建了两个项目。这是我的第三个项目。我总是被困在这一点上。我想让服务器端代码在页面上发生事件时运行,比如单击按钮。
在链接的图像中。我希望在单击“删除”按钮时删除该条目。我已经将数据保存在 mysql 服务器上,所以我也希望将其从那里删除
这是我所做的。我创建了一条路线/delete_student,它处理删除学生。但问题是它总是重新加载页面,并且它切换到不同的 url。我不希望它们中的任何一个发生。我该怎么办?我应该使用 Ajax,如果是,请告诉我,如何使用?
HTML
{% for i in data %}
<tr>
<td>{{i['roll_no']}}</td>
<td>{{i['name']}}</td>
<td>{{i['username']}}</td>
<td>{{i['password']}}</td>
<td><a href="#">Edit</a></td>
<td><a href="{{url_for('delete_student')}}">Delete</a></td>
</tr>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
烧瓶
@app.route('/delete_student')
@is_logged_in
def delete_student():
if session['username']=='nitti':
cur = mysql.connection.cursor()
#pop the row from the table?
#how to identify the row being deleted?
return render_template(url_for('student_summary'))
Run Code Online (Sandbox Code Playgroud) 我正在尝试通过 Joi 验证纬度和经度。
允许的纬度数字范围是-90 to +90
允许的经度数字范围是-180 to +180
const schema = Joi.object({
map_lat: Joi.number()
.min(-90)
.max(90)
.messages({ 'number.base': "Invalid latitude!" }),
map_lng: Joi.number()
.min(-180)
.max(180)
.messages({ 'number.base': "Invalid longitude!" }),
})
Run Code Online (Sandbox Code Playgroud)
我遇到以下错误。
错误:限制必须是正整数或引用
我也尝试过:
map_lng: Joi.number()
.positive()
.negative()
.min(-90)
.max(90)
Run Code Online (Sandbox Code Playgroud)
但仍然遇到同样的错误。
任何人都可以帮助我如何验证 -ve 到 +ve 范围值?
我很难理解 preg_replace()。
这就是我到目前为止所得到的。
preg_replace($patter, $replacement, $string)
但是,当有捕获组替换时,它让我感到困惑。但我还是明白了一些。像下面这样
preg_replace('/(\w+)/', 'hello', 'say hello!')
我知道这会导致“你好你好!”。我可以通过捕获组做更多事情。
preg_replace('/(\w+)/','\1 Hello', 'Say World!',1)
这将导致“向世界说你好”。
这是我不明白的。
<?php
$string = 'April 15, 2003';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
Output:
April1,2003
Run Code Online (Sandbox Code Playgroud)
什么${1}1,$3意思?
使用$1 \1和<\1>
这${1}1意味着什么?
我需要创建独特的推荐代码。为了使每个推荐代码都独一无二,我正在尝试执行如下操作。
const stringVal = `${currentTimestamp}${someVal}${someKey}`
Run Code Online (Sandbox Code Playgroud)
这里someVal本身是 BigInt mysql 数据类型,并且someKey始终是两位数。
为了编码,我使用base62包。
每当我通过someVal超过 99 分时,我就会开始得到意想不到的结果。
function generateReferralCode(someVal) {
const currentTimestamp = Date.now()
let someKey = getSomeKey(someVal)
const val = `${currentTimestamp}${someVal}${someKey}`
console.log(`number to string : ${val}`)
console.log(`longed value from string : ${Long.fromString(val)}`)
const encodedVal = await base62.encode(Long.fromString(val))
return encodedVal
}
function parseReferralCode(referralCode) {
const decodedVal = base62.decode(referralCode)
console.log(`decoded number : ${decodedVal}`)
//extract someValue
let somevalue = parseInt(decodedVal / 100) % ( Math.pow(10, (decodedVal % …Run Code Online (Sandbox Code Playgroud) node.js ×6
javascript ×5
express ×2
asynchronous ×1
flask ×1
joi ×1
lodash ×1
networking ×1
pcre ×1
php ×1
promise ×1
reactjs ×1
regex ×1
windows ×1