我正在构建一个部署到Heroku的App,它使用Websockets.
当我只使用1个dyno时,websockets连接正常工作,但当我缩放到> 1时,我得到以下错误
POST http://****.herokuapp.com/socket.io/?EIO = 2&transport = polling&t = 1412600135378-1&sid = zQzJJ8oPo5p3yiwIAAAC 400(错误请求)socket.io-1.0.4.js:2
WebSocket连接到'ws://****.herokuapp.com/socket.io/?EIO = 2&transport = websocket&sid = zQzJJ8oPo5p3yiwIAAAC'失败:WebSocket在建立连接之前关闭.socket.io-1.0.4.js:2
我正在使用Redis适配器来启用多个Web进程
var io = socket.listen(server);
var redisAdapter = require('socket.io-redis');
var redis = require('redis');
var pub = redis.createClient(18049, '[URI]', {auth_pass:"[PASS]"});
var sub = redis.createClient(18049, '[URI]', {detect_buffers: true, auth_pass:"[PASS]"} );
io.adapter( redisAdapter({pubClient: pub, subClient: sub}) );
Run Code Online (Sandbox Code Playgroud)
这正在localhost(我正在使用工头运行,正如Heroku所做的那样,我正在启动2个Web进程,与Heroku相同).
在我实现redis适配器之前,我遇到了Web套接字握手错误,因此适配器已经产生了一些影响.此外它现在偶尔工作,我假设当套接字匹配相同的web dyno.
我也尝试启用粘性会话,但它永远不会有效.
var sticky = require('sticky-session');
sticky(1, server).listen(port, function (err) {
if (err) {
console.error(err);
return process.exit(1);
}
console.log('Worker listening on %s', port); …Run Code Online (Sandbox Code Playgroud) 我正在使用Node SDK将文件上传到Amazon S3.
文件上传工作正常,但我希望将文件的公共URL发送回客户端.
目前我得到的回应是:
Successfully uploaded data { ETag: '"957cd1a335adf5b4000a5101ec1f52bf"' }
Run Code Online (Sandbox Code Playgroud)
这是我的代码.我正在使用Node Express服务器和Multer来处理上传.
app.use(multer({ // https://github.com/expressjs/multer
dest: './public/uploads/',
limits : { fileSize:100000 },
rename: function (fieldname, filename) {
var time = new Date().getTime();
return filename.replace(/\W+/g, '-').toLowerCase() + time;
},
onFileUploadData: function (file, data, req, res) {
// file : { fieldname, originalname, name, encoding, mimetype, path, extension, size, truncated, buffer }
var params = {
Bucket: creds.awsBucket,
Key: file.name,
Body: data,
ACL: 'public-read'
};
var s3 = new aws.S3() …Run Code Online (Sandbox Code Playgroud) 我正在构建一个基于在Heroku上运行的Node.js的应用程序.
该应用程序使用一个JSON文件,目前正在与应用程序的其余部分一起推送,我们正在阅读和写入它,如下所示:
var channelsList = require("./JSON/channels.json");
...
fs.writeFile("JSON/channels.json", JSON.stringify(channelsList), onCleaned);
Run Code Online (Sandbox Code Playgroud)
这对于原型来说现在已经有用了,但我知道我们需要使用数据存储,否则当Dyno睡眠或我推动更改时,更改将不会持续存在.
我已经读过,使用Mongolabs设置数据库可能是一个不错的选择,但我想知道是否还有其他选项,因为这似乎可能比必要的更复杂.这对我来说是一个新的领域,所以如果Mongo是要走的路,那么指针也会受到赞赏.
我们还希望将新文件写为一周中每天的备份.
干杯.
我正在使用Next.js构建一个React SSR应用程序。
我希望能够在客户端访问NODE_ENV,因为这将告诉我的应用程序要使用哪些API端点。
我正在努力为此找到一个体面的方法。第一次在服务器上呈现页面时,我想将NODE_ENV定义为窗口变量,然后在进行API调用的辅助函数中,检查是否在服务器或客户端上调用了代码,并根据需要使用window或process.env变量。
有没有人对这个问题有好的解决方案。这肯定是一个普遍的问题,但是我找不到任何好的解决方案。
我有一个在 Wordpress 上运行的网站,我想创建一个自定义短网址。
如果页面 URL 是 www.mysite.com/category/post 我希望用户能够访问 www.mysite.com/alias
如果有一种“Wordpress-y”的做事方式,那会更好,但我也可以通过修改 .htaccess 文件来做到这一点。
谢谢
我正在使用 Vercel Serverless 函数来处理上传到 Digital Ocean Spaces 的文件(与 AWS S3 相同的 API)。但是,我在请求处理程序中处理多部分/表单数据时遇到了问题。
在前端,我使用 fetch 来发布带有文件和几个文本字段的 FormData() 对象。当在标题上记录主体和服务器时,我可以按预期看到那里的所有内容,但是当使用 Multer 处理多部分时(我也尝试了其他几个类似的包),我无法检索任何已发布的字段或文件。
另外值得注意的是,当使用 Postman 测试 POST 请求时,我遇到了完全相同的问题,因此我确信问题出在无服务器功能上。
const handleSubmit = async (values) => {
const formData = new FormData();
// build my Form Data from state.
Object.keys(values).forEach(key => {
formData.append(key, values[key]);
});
const response = await fetch("/api/post-submission", {
method: "POST",
headers: {
Accept: "application/json",
},
body: formData,
});
const json = await response.json();
};
Run Code Online (Sandbox Code Playgroud)
const util = require("util");
const multer = …Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一些脚本,当用户调整屏幕大小以达到某个阈值时,该脚本将重定向.
我正在使用JQuery窗口调整大小函数,我编写的代码如下:
$(window).resize(function(){
if ((window.width > 225px) && (window.width < 255px) && (window.height > 330px) && (window.height < 400px))
{
window.location = "URL GOES HERE"
};
Run Code Online (Sandbox Code Playgroud) 我正在尝试用Meteor创建一个新的应用程序(这是我第一次在这台计算机上使用它).
当我尝试开始一个新的应用程序时:
meteor create simple-todos
Run Code Online (Sandbox Code Playgroud)
我收到以下错误并创建应用程序失败:
{ [Error: SQLITE_CANTOPEN: unable to open database file]
stack: [Getter] }
Run Code Online (Sandbox Code Playgroud)
在下面我得到一些其他错误:
Error: SQLITE_CANTOPEN: unable to open database file
at Object.Future.wait (/Users/Jack/.meteor/packages/meteor-tool/.1.1.4.2l3p0l++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/lib/node_modules/fibers/future.js:398:15)
Run Code Online (Sandbox Code Playgroud)
我找不到其他人有同样的问题,所以我对如何调试或修复有点不知所措.关于如何调试/修复此问题的指针将非常有用.
我在页面上的表单中有自定义样式的文本输入.
它在桌面,Android,iOS Chrome上按预期工作,但有时在iOS Safari中打字时,没有文字输入,即使该字段有焦点且光标闪烁(不经常发生,但似乎发生了一些用户的所有时间).
表单代码非常标准,(直接从Mailchimp复制)
<form action="[mailchimp subscribe url]" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
<div id="mc_embed_signup_scroll">
<input type="email" value="" placeholder="Email" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
<input type="submit" value="REQUEST INVITE" name="subscribe" id="mc-embedded-subscribe" class="button">
<div id="mc_embed_signup_scroll">
<div style="position: absolute; left: -5000px;"><input type="text" name="b_e563c0e6b5344e25de276c14f_5e5c7a08a6" tabindex="-1" value=""></div>
</div>
</form>
Run Code Online (Sandbox Code Playgroud)
自定义CSS是:
input.email, .button {
outline: none;
border-radius: 3px;
-webkit-appearance: none;
appearance: none;
width: 240px;
padding: 12px 16px;
background-color: rgba(255,255,255,0.1);
margin: 0;
vertical-align: middle;
font-size: 12px;
letter-spacing: 0.1em;
font-family: 'Calibre Medium';
color: white !important; …Run Code Online (Sandbox Code Playgroud) 我有一个包含多个文档的集合,这些文档遵循以下结构:
{
"_id" : {
"oid" : XXX
},
"name" : "Name",
"videos" [
{
"id" : 1,
"thumbnail" : "thumbnail.jpg",
"name" : "Name here"
},
{
"id" : 2,
"thumbnail" : "thumbnail.jpg",
"name" : "Name here"
},
{
"id" : 3,
"thumbnail" : "thumbnail.jpg",
"name" : "Name here"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我想查找并更新视频的缩略图,我只知道其中的 id,但不知道它在哪个文档中。
这是我迄今为止尝试过的方法,但它无法正常工作。我发现的所有示例都依赖于知道文档 ID 和要更新的对象的数组位置。我还发现做这样的查询发现文档没问题,但将整个文档设置为新缩略图!
db.collection(COLLECTION-NAME, function(err, collection){
collection.update(
{ 'videos.id' : 2 },
{ $set: { thumbnail: "newThumbnail.jpg" } },
function(err, result){
if (!err){
console.log('saved', result)
} …Run Code Online (Sandbox Code Playgroud) 我正在使用简单的设置 Cannon.js,遵循在线示例,但是当我在构造函数中设置任何属性时,位置和角速度 x、y 和 z 都是 NaN。
这有效,但不会移动,因为身体没有质量。
const body = new CANNON.Body();
console.log(body.position.x, body.mass); //logs 0, 0
Run Code Online (Sandbox Code Playgroud)
然而,这并不...
const body = new CANNON.Body({
mass: 1,
});
console.log(body.position.x, body.mass); //logs NaN, 1
Run Code Online (Sandbox Code Playgroud)
此外,如果我实例化身体,然后设置质量,它仍然不会移动。
更多的上下文代码(我在动画循环中调用更新函数,它正在发生)。
export const init = () => {
world = new CANNON.World();
world.gravity.set(0,1,0);
world.broadphase = new CANNON.NaiveBroadphase();
world.solver.iterations = 10;
for (let i = 0; i < BODIES_COUNT; i++) {
const shape = new CANNON.Box(new CANNON.Vec3(4,4,4));
const body = new CANNON.Body({
mass: 1,
});
const body = …Run Code Online (Sandbox Code Playgroud) node.js ×5
javascript ×3
forms ×2
heroku ×2
mongodb ×2
.htaccess ×1
amazon-s3 ×1
apache ×1
cannon.js ×1
css ×1
datastore ×1
express ×1
input ×1
ios ×1
jquery ×1
json ×1
macos ×1
meteor ×1
mod-rewrite ×1
multer ×1
next.js ×1
nosql ×1
php ×1
physics ×1
reactjs ×1
redirect ×1
redis ×1
safari ×1
serverless ×1
socket.io ×1
sqlite ×1
three.js ×1
vercel ×1
websocket ×1
wordpress ×1