下面是app.js
文件的代码
var port = process.env.PORT || 8080; // set our port
var express = require('express');
var app = express();
var bodyParser = require('body-parser')
var cors = require('cors');
var indexRouter = require("./server/routes/index");
var http = require('http').Server(app);
const path = require('path')
const Licence = require('./server/CronJob/CronJob');
http.listen(port);
app.use(cors());
app.use(bodyParser.json({ limit: '50mb' }));
app.use(bodyParser.json({
type: 'application/vnd.api+json'
}));
app.use(bodyParser.urlencoded({
limit: '50mb',
extended: true,
parameterLimit: 50000
}));
// parse application/json
app.use(express.json());
app.use(express.urlencoded()); //Parse URL-encoded bodies
app.use(function (req, res, next) {
res.header("Access-Control-Allow-Origin", '*');
res.header("Access-Control-Allow-Credentials", true); …
Run Code Online (Sandbox Code Playgroud) 在2016 年使用 sequelize ORM 的代码中,我看到使用此模式定义的模型类型:
module.exports = function(sequelize, DataTypes) {
const Tasks = sequelize.define("Tasks", { id: {
type: DataTypes.INTEGER,
[ ...etc.]
Run Code Online (Sandbox Code Playgroud)
但是,在当前的续集文档中,您会看到最突出的记录:(Sequelize.INTEGER
或其他类型,然后是整数)。同时,在当前的文档中,我DataTypes
仍然发现documented/used
:here。
在同一页面Sequelize.INTEGER
上使用...,仅用于可延期或其他什么?
我试图找出这是否会随着时间的推移而改变,但找不到。
什么时候Sequelize.INTEGER
是“当前解决方案”我可以将上面的代码更改为:
module.exports = function(sequelize, Sequelize) {
const Tasks = sequelize.define("Tasks", { id: {
type: Sequelize.INTEGER,
[ ...etc.]
Run Code Online (Sandbox Code Playgroud)
或者使用Sequelize
作为参数会以某种方式使这失败?
所以我在 mongo 商店中使用 express-session,如下所示:
app.use(session({
secret: 'some secret here',
saveUninitialized: false,
resave: false,
store: new MongoStore({
url: 'http://someurlhere'
})
}));
Run Code Online (Sandbox Code Playgroud)
我有一些登录中间件,在成功登录后,我想设置会话 cookie 到期时间。
所以我现在正在使用 10 秒的到期时间进行测试
req.session.cookie.expires = new Date(Date.now() + 10000);
Run Code Online (Sandbox Code Playgroud)
我希望为每个后续请求重置会话到期时间。目前,经过 10 秒后,无论我在登录后发出多少请求,会话都会过期。
我觉得我在这里误解了一些东西!
编辑
好的,所以我错过了rolling
文档中的配置选项,但即使我在会话配置选项中将其设置为 true,也会发生相同的行为:
app.use(session({
secret: 'some secret here',
saveUninitialized: false,
resave: false,
store: new MongoStore({
url: 'http://someurlhere'
}),
rolling: true,
cookie: {
maxAge: 10000
}
}));
Run Code Online (Sandbox Code Playgroud)
我现在正在控制台记录我的路由中 cookie maxAge 的值,并看到它随着登录后的每个后续请求而减少,它永远不会重置回 10000。
我究竟做错了什么?
解决了
好的,所以我遇到了关于这个问题的评论
我更改resave
为 true,现在按预期工作。
经过三天令人沮丧的尝试让 E-bayOAuth
给我一个访问令牌,我终于解决了。由于文档很痛苦,而且网上几乎没有帮助,我决定在这里发布我的解决方案,希望它能帮助其他人。我不擅长 stackoverflow,所以如果我需要改进格式,请告诉我。
app.get("/login/ebay", (req, res) => {
res.redirect(
`https://auth.sandbox.ebay.com/oauth2/authorize?client_id=DeanSchm-TestApp-SBX-b843acc90-fd663cbb&redirect_uri=Dean_Schmid-DeanSchm-TestAp-kqmgc&response_type=code`
);
});
Run Code Online (Sandbox Code Playgroud)
您需要做的第一件事是重定向到此网址。
格式是这样的
https://auth.sandbox.ebay.com/oauth2/authorize?client_id=<your_client_id>&redirect_uri=<your_redirect_uri>&response_type=code
Run Code Online (Sandbox Code Playgroud)
还有一个 scope 属性,但我还不明白,我得到了一个没有 is so mehhh 的令牌。
这url
会将您带到e-bay
登录页面。如果您使用的是sandbox
,则需要创建一个sandbox
用户并使用沙箱凭据登录。
登录后,e-bay 会将您重定向到您选择的 URL。您在此处输入要重定向到的 URL。
它位于通过您的应用程序从 e-bay 获取令牌下的 e-bay 开发人员部分。
这个网址可以是任何东西。你只需要在 node 或 express 中处理它,因为只要有人登录到那个 url 就是他们要去的地方。
这是我如何处理它
app.get("/auth/ebay/callback", (req, res) => {
axios("https://api.sandbox.ebay.com/identity/v1/oauth2/token", {
method: "post",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
Authorization:
"Basic " +
btoa(
`client public key:client secret keys`
)
},
data: qs.stringify({
grant_type: "authorization_code",
// …
Run Code Online (Sandbox Code Playgroud) 在这里,我正在更新user_features
数据库,我从这里发现我可以通过批量更新updateOnDuplicate:
但是它抛出如下错误
SequelizeDatabaseError: syntax error at or near ")"
Run Code Online (Sandbox Code Playgroud)
我试过了,updateOnDuplicate: true
但它只支持 mysql 不支持 postgresql
var feature_body_list = [];
for (let index = 0; index < req.body.features.length; index++) {
let feature_body = {
user_id: req.body.id,
feature_id: req.body.features[index]
}
feature_body_list.push(feature_body);
}
await sequelize.user_features.bulkCreate(feature_body_list, { updateOnDuplicate: ["user_id", "feature_id"] });
Run Code Online (Sandbox Code Playgroud)
但是当我删除 updateonDuplicate 时,它可以完美运行并抛出 UniqueConstraintError 重复键,所以我该如何批量更新???
Error: code:'SignatureDoesNotMatch'
extendedRequestId:undefined
message:null
name:'SignatureDoesNotMatch'
region:null
Run Code Online (Sandbox Code Playgroud)
// Load dependencies
const aws = require('aws-sdk');
const express = require('express');
const multer = require('multer');
const multerS3 = require('multer-s3');
const app = express();
// Set S3 endpoint to DigitalOcean Spaces
const spacesEndpoint = new aws.Endpoint('fra1.digitaloceanspaces.com');
const s3 = new aws.S3({
endpoint: spacesEndpoint,
accessKeyId: '*************',
secretAccessKey: '**********************************'
});
// Change bucket property to your Space name
const upload = multer({
storage: multerS3({
s3: s3,
bucket: 'bucket',
acl: 'public-read',
key: function (request, file, cb) {
console.log(file); …
Run Code Online (Sandbox Code Playgroud) 我想将 HH:MM 转换为 MM 我想在下面的代码中使用分钟,但它无法将 14:30 转换为 858,因为您可以在小提琴分钟中看到结果,但如果您将 14.3 放入小提琴代码中,它会将 14.3 转换为分钟而不是 14.30。
我正在转换小时。分钟比我得到的分钟少 240 分钟 我如何转换这个小时。一分钟内。下面是我试图将小时转换为分钟的代码
注意:小时可以是 0 到 23 之间的任何时间,可以是 2:30,也可以是 10:30
function convertHourstoMinute(hours) {
return Math.floor(hours * 60);
}
let hrs = convertHourstoMinute(14:30); // convert hours into minutes javascript
console.log( "javascript convert hours to minutes :- " + hrs );
let minutes = hrs * 60;
console.log(minutes)
let callback_time = minutes - 240
console.log(callback_time)
let call_back = callback_time / 60
console.log(call_back)
Run Code Online (Sandbox Code Playgroud) 在我的package.json
文件中,我想在我的项目中更新dependencies
& 。devdependencies
我不知道如何更新
已安装 node.js 但显示
nodejs
找不到命令,但可以使用以下命令安装:
sudo apt install nodejs
Run Code Online (Sandbox Code Playgroud)
然后尝试, sudo apt install nodejs
并显示
Reading package lists... Done
Building dependency tree
Reading state information... Done
nodejs is already the newest version (14.13.1-deb-1nodesource1).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Run Code Online (Sandbox Code Playgroud)
但是当我尝试检查 node.js 版本时,$ nodejs -v
它显示nodejs
未找到命令,但可以安装:
sudo apt install nodejs
Run Code Online (Sandbox Code Playgroud)
请帮我解决这个错误并正确查看 node.js 版本
我是新手,Haskell
我正在尝试拥有elem
我的第一个[[char]]
我试过这个:(在我的主要)
tmpList = recomposeNumber (words argss) []
det = test tmpList
Run Code Online (Sandbox Code Playgroud)
tmpList
是一个 [[Char]]
我的tmpList
是:
["12","+","1"]
Run Code Online (Sandbox Code Playgroud)
我尝试了类似的事情,但我不知道该怎么做
test:: [[Char]] -> [[Char]]
test [x:xs] = x
Run Code Online (Sandbox Code Playgroud)
我不知道它是否可能,但我想返回一个 integer
我想用测试函数返回“12”,但我迷路了
node.js ×7
express ×3
javascript ×3
sequelize.js ×2
api ×1
body-parser ×1
ebay-api ×1
haskell ×1
hour ×1
minute ×1
multer ×1
multer-s3 ×1
npm ×1
npm-install ×1
oauth ×1
orm ×1
postgresql ×1
req ×1
spaces ×1
ubuntu ×1