Nodejs的几个问题
Nodejs的几个问题
1.node 怎么使用多线程
2.node 上传文件有比 multer 更好的方案吗
3.前端点击按钮上传图片之前如何实现图片预览
4.被 python 党喷 js 就是个辣鸡,应该怎么怼
cluster
传文件这个中间件挺好用的
预览和 node 有鸡毛关系,直接去看 filereader
菜是原罪,和语言无关
最后一句好精辟
- 使用 worker_threads
3. 前端预览可以直接前端实现, 使用 canvas
- 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. 软件工程没有银弹,在不同的地方使用最合适的技术栈才是最明智的。
- 上次看到一个用 https://www.npmjs.com/package/fibers
是一种 coroutine,被 https://www.npmjs.com/package/sass 使用,Dart 写的,很有趣的用法
4. 电子竞技(
2 和 3 可以放到客户端那边去做,亦即前后端分离。
2 的核心原理实际上就是 HTML5 的文件上传,3 可以调 FileReader 接口 new 个 Image 然后直接填充,当然也可以用 Canvas (如果项目里没大规模用 Canvas,我觉得还是前者比较有优势)
4 ……这种人懒得喷,就让他继续辣鸡下去好了。
关于 2 和 3,可以参考 https://segmentfault.com/a/1190000006718963
原文用了个 js 插件来处理图片兼容性的问题,不过上传和预览的大致原理都有涉及。
4.告诉他 php 是世界上最好的语言.
4 支持他把他培养成大煞笔
- 菜是原罪 (PHP 是世界上最好的语言)
- 将上传的图片转换为 base64, 再用 img 标签直接预览
- 是是是,你说得对,Python 语法容易阅读,并且能做大数据,人工智能啥的,js 语法就是个垃圾,性能坑的要死,要不是前端必须要用它,我才不想用呢。 我现在呀,就后悔没学 Python,不然现在月薪应该就有 50K 了吧。
厚葬友军
3 , express + ejs 的话,上传本地服务时候,把图片存在 session 中,提交表单时候,delete session.img
3.直接走 blob 协议就好
4. js 确实辣鸡
关于Node.js的几个常见问题,这里简要解答并提供一些代码示例:
-
Node.js是什么? Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,允许JavaScript代码在服务器端运行。
-
如何创建一个简单的Node.js服务器? 使用Node.js内置的
http
模块可以创建一个简单的服务器。const http = require('http'); const hostname = '127.0.0.1'; const port = 3000; const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'); }); server.listen(port, hostname, () => { console.log(`Server running at http://${hostname}:${port}/`); });
-
Node.js如何处理异步操作? Node.js使用回调函数、Promises和async/await来处理异步操作。
function asyncOperation() { return new Promise((resolve) => { setTimeout(() => resolve('Done!'), 1000); }); } async function run() { console.log('Starting...'); const result = await asyncOperation(); console.log(result); } run();
-
Node.js有哪些常用的框架? Node.js有许多流行的框架,如Express、Koa、NestJS等,它们简化了Web应用程序的开发过程。
以上是对Node.js几个常见问题的简要回答,希望对你有帮助。如果有更多具体问题,欢迎继续提问。