V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Maxzel
V2EX  ›  Node.js

node 的几个问题

  •  
  •   Maxzel · 2019-05-29 10:46:34 +08:00 · 4976 次点击
    这是一个创建于 2012 天前的主题,其中的信息可能已经有所发展或是发生改变。

    1.node 怎么使用多线程

    2.node 上传文件有比 multer 更好的方案吗

    3.前端点击按钮上传图片之前如何实现图片预览

    4.被 python 党喷 js 就是个辣鸡,应该怎么怼

    16 条回复    2019-06-04 22:33:21 +08:00
    whypool
        1
    whypool  
       2019-05-29 10:52:47 +08:00   ❤️ 4
    cluster
    传文件这个中间件挺好用的
    预览和 node 有鸡毛关系,直接去看 filereader
    菜是原罪,和语言无关
    Bijiabo
        2
    Bijiabo  
       2019-05-29 10:56:05 +08:00
    @whypool 最后一句好精辟
    lisia
        3
    lisia  
       2019-05-29 11:01:47 +08:00
    1. 使用 worker_threads
    3. 前端预览可以直接前端实现, 使用 canvas
    libook
        4
    libook  
       2019-05-29 11:19:13 +08:00
    1. Node 现在多线程是试验阶段,不过已经离稳定发布不远了,现在最新版 Node 已经不需要加 flag 就可以使用 https://nodejs.org/api/worker_threads.html 如果对稳定性(主要是 API,程序已经很稳定了,不保证正式发布前 API 是否会做调整,不过大概率不会有大变动)要求不严格可以开始用了。或者可以去找一些 Web worker 的其他方案。
    如果接受多进程方案的话,Cluster、Chield Process 都很稳定,可以根据自己的需要使用。
    2. 没抠过这个,用得比较多的方案是上传 SDN 再从 Node 上下载,这样对弹性分布式+消息总线的系统友好一些。
    3. 跟 Node 没关系,个人没怎么做过,不过有思路是用 HTML5 API 读取本地文件然后再用 Canvas 画出来,这样可以支持上传前编辑,最终上传的应该是页面内存里的那个编辑过的图片数据。可以找找有没有相关的前端组件。
    4. 软件工程没有银弹,在不同的地方使用最合适的技术栈才是最明智的。
    azh7138m
        5
    azh7138m  
       2019-05-29 11:25:16 +08:00
    1. 上次看到一个用 https://www.npmjs.com/package/fibers
    是一种 coroutine,被 https://www.npmjs.com/package/sass 使用,Dart 写的,很有趣的用法

    4. 电子竞技(
    marsgt
        6
    marsgt  
       2019-05-29 11:31:30 +08:00
    2 和 3 可以放到客户端那边去做,亦即前后端分离。
    2 的核心原理实际上就是 HTML5 的文件上传,3 可以调 FileReader 接口 new 个 Image 然后直接填充,当然也可以用 Canvas (如果项目里没大规模用 Canvas,我觉得还是前者比较有优势)
    4 ……这种人懒得喷,就让他继续辣鸡下去好了。
    marsgt
        7
    marsgt  
       2019-05-29 11:34:26 +08:00
    关于 2 和 3,可以参考 https://segmentfault.com/a/1190000006718963
    原文用了个 js 插件来处理图片兼容性的问题,不过上传和预览的大致原理都有涉及。
    TomVista
        8
    TomVista  
       2019-05-29 11:44:54 +08:00
    4.告诉他 php 是世界上最好的语言.
    ochatokori
        9
    ochatokori  
       2019-05-29 11:49:21 +08:00 via Android
    4 支持他把他培养成大煞笔
    ben1024
        10
    ben1024  
       2019-05-29 12:23:51 +08:00
    4. 菜是原罪 (PHP 是世界上最好的语言)
    redbuck
        11
    redbuck  
       2019-05-29 13:04:04 +08:00 via iPhone
    lbw
        12
    lbw  
       2019-05-29 13:29:30 +08:00
    3. 将上传的图片转换为 base64, 再用 img 标签直接预览
    alw
        13
    alw  
       2019-05-29 13:52:03 +08:00
    4. 是是是,你说得对,Python 语法容易阅读,并且能做大数据,人工智能啥的,js 语法就是个垃圾,性能坑的要死,要不是前端必须要用它,我才不想用呢。 我现在呀,就后悔没学 Python,不然现在月薪应该就有 50K 了吧。
    l1nyanm1ng
        14
    l1nyanm1ng  
       2019-05-29 14:30:14 +08:00
    @alw 厚葬友军
    jasonlwy
        15
    jasonlwy  
       2019-05-29 14:43:28 +08:00
    3 , express + ejs 的话,上传本地服务时候,把图片存在 session 中,提交表单时候,delete session.img
    BlackHole1
        16
    BlackHole1  
       2019-06-04 22:33:21 +08:00
    3.直接走 blob 协议就好
    4. js 确实辣鸡
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2865 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 297ms · UTC 06:18 · PVG 14:18 · LAX 22:18 · JFK 01:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.