小编Gre*_*een的帖子

Meteor:将文件从客户端上传到Mongo集合vs文件系统与GridFS

Meteor很棒,但它缺乏传统文件上传的原生支持.有几种方法可以处理文件上传:

从客户端,可以使用以下方式发送数据:

  • Meteor.call('saveFile',data)或collection.insert({file:data})
  • 'POST'表单或HTTP.call('POST')

在服务器中,文件可以保存到:

  • collection.insert({file:data})的mongodb文件集合
  • 文件系统在/ path/to/dir中
  • mongodb GridFS

这些方法的优缺点是什么以及如何最好地实现它们?我知道还有其他选项,例如保存到第三方网站并获取网址.

file-upload mongodb gridfs meteor

38
推荐指数
1
解决办法
1万
查看次数

Webpack extract-text-webpack-plugin和css-loader缩小

我有问题,最小化extract-text-webpack-plugin输出的css文件

/* webpack.config.js */
...
loader: [{test: /\.css$/, loader: ExtractTextPlugin.extract('css?minimize')}]
...
plugins: [new ExtractTextPlugin("styles.css")]
...

/* test.js */
require('./file1.css')
Run Code Online (Sandbox Code Playgroud)
/* file1.css */
@import './file2.css';
body {color: green;}
body {font-size: 1rem;}

/* file2.css */
body {border: 1px solid;}
body {background: purple;}

/* the output styles.css */
body{color:green;font-size:1rem}body{border:1px solid;background:purple}
Run Code Online (Sandbox Code Playgroud)

在生成的styles.css中,有2个body标签.似乎缩小是在文件中执行的(在file1.css和file2.css中),但是当两个文件组合并提取到最终的styles.css中时不会.

如何在最终的style.css上进行缩小?所以输出是

body{color:green;font-size:1rem;border:1px solid;background:purple}
Run Code Online (Sandbox Code Playgroud)

webpack css-loader

31
推荐指数
1
解决办法
9540
查看次数

具有唯一约束的Postgres哈希索引

由于Postgres 10正确支持哈希索引,我想使用哈希索引进行id查找(哈希索引的大小比btree小,理论上更快).

我有一张桌子

create table t (id int);
create unique index on t using hash (id);
Run Code Online (Sandbox Code Playgroud)

但我得到以下内容:

ERROR: access method "hash" does not support unique indexes

为什么哈希索引不允许唯一约束?有办法绕过这个吗?

postgresql unique

10
推荐指数
2
解决办法
1716
查看次数

部署应用引擎后存储暂存文件

部署Google应用引擎后,Google云端存储中至少会创建4个存储桶:

  • [项目-ID] .appspot.com访问
  • 分期.[项目-ID] .appspot.com访问
  • 文物.[项目-ID] .appspot.com访问
  • VM-容器.[项目-ID] .appspot.com访问

它们是什么,它们会产生存储成本吗?他们可以安全删除吗?

google-app-engine google-cloud-storage

9
推荐指数
3
解决办法
3176
查看次数

for循环中的Javascript内存使用情况

我尝试在nodejs(0.10.35)中分析内存使用情况,我在下面创建了2个文件并使用node -expose-gc运行

var a和var b初始化为空字符串

运行for循环使a和b更大

setInterval每1秒打印一次内存使用情况

x >> 20运算符相当于Math.floor(x/1024/1024),以MB为单位给出结果

//file 1.js

var a = '', b = '', n = 0;
var i = 10000000; for (;i;i--) {a += i; b += i;}}

setInterval(function(){
    var m = process.memoryUsage();
    console.log(++n,m.rss>>20,m.heapTotal>>20,m.heapUsed>>20);  
},1000);

setTimeout(function(){  
    global.gc();
    console.log('1st garbage collect');
},2500);

setTimeout(function(){
    a = null;
    console.log('var a cleared');   
},5000);

setTimeout(function(){
    global.gc();
    console.log('2nd garbage collect');
},7500);

//file 2.js is similar to file 1 except that var a and var b are changed at separate loops …
Run Code Online (Sandbox Code Playgroud)

javascript memory garbage-collection memory-management node.js

5
推荐指数
1
解决办法
798
查看次数

Webpack热模块替换服务器代码

到目前为止,我所看到的所有webpack示例都涉及客户端热模块替换,例如:thisthis.

根据webpack文档,可以使用EITHER webpack-dev-server或中间件(webpack-dev-webpack-dev-middleware和webpack-hot-middleware,以及webpack-hot-middleware/client在配置中entry,并集成到例如express js中)来启用热客户端代码的模块替换

是否可以为服务器端代码启用热模块更换?该文档确实显示了一个例子

var requestHandler = require("./handler.js");
var server = require("http").createServer();
server.on("request", requestHandler);
server.listen(8080);

// check if HMR is enabled
if(module.hot) {
    // accept update of dependency
    module.hot.accept("./handler.js", function() {
        // replace request handler of server
        server.removeListener("request", requestHandler);
        requestHandler = require("./handler.js");
        server.on("request", requestHandler);
    });
}
Run Code Online (Sandbox Code Playgroud)

该文件非常简洁.

所以问题是,如何在不重启服务器的情况下在服务器端代码中实现热模块替换?(目前,我有nodemon监视服务器端代码,以便在文件更改时重启服务器)

webpack webpack-dev-server

5
推荐指数
1
解决办法
1704
查看次数

生产中更新nodejs,停机时间为零

有几个软件包可以在生产模式下更新节点js应用程序,停机时间为零(或正常重新加载),例如pm2.

但是,是否可以更新节点js本身,例如从LTS版本4.x更新到生产中的新版本6.x,停机时间为零?

node.js

5
推荐指数
1
解决办法
3820
查看次数

iOS 滚动有时会卡住

我在 iphone (iOS 9.2) 上的 safari 中遇到了一个奇怪的行为

如果你在桌面上看到这个页面http://jsbin.com/vofubidaxe,有 3 张熊猫图片,你可以滚动它

但是,如果您在 iphone safari 上看到它,有时(并非所有时间)您无法滚动它。卷轴似乎卡住了(不确定卡住是否是描述行为的正确词)

在这里编辑http://jsbin.com/vofubidaxe/edit?html,css,output

要点https://gist.github.com/anonymous/938fc5f84222d8ed06cdcb7f6092da8d

导航标签有一个position: fixed,如果它被删除,滚动恢复正常。

抱歉,如果这是 safari 中的已知错误。如何修复?

css ios

5
推荐指数
1
解决办法
3976
查看次数

Sqlite: append a new element to an existing array

From the sqlite3 doc

select json_insert('{"a":2,"c":4}', '$.e', 99) -- ? '{"a":2,"c":4,"e":99}'
Run Code Online (Sandbox Code Playgroud)

But how to append a new element to an array?

select json_insert('[1,2,3]', ??, 4) -- ? '[1, 2, 3, 4]'
update someTable set someArray = json_insert(someArray, ??, 'some new value') 
Run Code Online (Sandbox Code Playgroud)

sqlite json sqlite-json1

5
推荐指数
2
解决办法
972
查看次数