SegmentFault node.js的问题
2024-03-27T11:31:37+08:00
https://segmentfault.com/feeds/tag/node.js
https://creativecommons.org/licenses/by-nc-nd/4.0/
@clickhouse/client-web 在 Node.js v18+ 中出现的报错?
https://segmentfault.com/q/1010000044747058
2024-03-26T15:32:50+08:00
2024-03-26T15:32:50+08:00
聿夆昜
https://segmentfault.com/u/y_f_654362a186c7d
0
<p>使用@clickhouse/client-web本地是正常的,<br>到测试环境就报错crypto.randomUUID is not a function</p><p><img width="723" height="370" src="/img/bVdbUVL" alt="image.png" title="image.png"><br>node版本18.多,依赖已安装上,搜索的方法也已经试过,没有效果,这是什么原因呢?</p><p><img width="512" height="337" src="/img/bVdbU8u" alt="image.png" title="image.png"></p>
如何根据node_modules生成package.json ?
https://segmentfault.com/q/1010000044749764
2024-03-27T11:31:37+08:00
2024-03-27T11:31:37+08:00
栀子
https://segmentfault.com/u/zi_587b7da08e542
0
<p>比较特殊的情况,node_modules和package.json没有同步。<br>或者如何查看node_modules中所有的依赖</p><p><img width="723" height="394" src="/img/bVdbVJQ" alt="" title=""><br><img width="723" height="394" src="/img/bVdbVJR" alt="" title=""><br><img width="723" height="394" src="/img/bVdbVJT" alt="" title=""></p>
如何在Node.js中成功打包Pixso插件?
https://segmentfault.com/q/1010000044748255
2024-03-26T20:44:09+08:00
2024-03-26T20:44:09+08:00
Leizingyiu
https://segmentfault.com/u/leizingyiu
0
<p>编写pixso插件后,在nodejs中无法打包,包括官方插件集的pkg,nodejs的pkg,以及nodejs的nexe。</p><p>即便是新建一个全新的环境也是相同的情况</p><p>————</p><p>操作环境: mac系统, node是v20.11.1 , pkg和nexe都是直接装最新的, pixso的创建环境是直接根据官方指南init出来的。<br>题主知识背景: 设计狗,会网页三件套,vue皮毛,nodejs只会抄 (请求大佬尽量简明回答,万分感激🙏)</p><p>————</p><p>我的操作步骤:<br>先init一个pixso插件,参考 <a href="https://link.segmentfault.com/?enc=0UCZ75PPEtBb2GyF3Xpd1g%3D%3D.CFkLqpwJdRQDUH7CT%2FifeGkONKhsn1F6eczNH%2FqrkuBcjF1Wyz6%2B0Jn2P3UyCNby" rel="nofollow">https://pixso.cn/developer/zh/guide/setup.html</a> (去不去 pixso.cn 测试都行)</p><p>然后参考官方工具集,pkg打包 <a href="https://link.segmentfault.com/?enc=VFrdwRUzZ7jKU1pDQncWIw%3D%3D.2BJgg0bZv16sXsE1w3WWHZEKJnufgSWXfnkuSR9tqiKoSTMSJl22eKqkqrnjJP6S" rel="nofollow">https://pixso.cn/developer/zh/tools.html</a> ,或者直接用nodejs的pkg打包</p><p>————</p><p>我这里出现的问题是,使用官方工具集得到的zip文件里面,只有mainfest文件,其他什么都没有;</p><p>使用nodejs的pkg能打包mac的运行文件,但是打出来的包,运行的时候就报错没有pixso这东西;</p><p>而用nexe打包,打出来的东西就只有一个nodejs环境,什么都没有。</p><p>————</p><p>希望得到的答复:<br>希望大佬能提供一个 .command 文件;<br>操作步骤的话麻烦大佬尽量通俗<br>实在麻烦的话,麻烦大佬给出搜索关键字。<br>(pkg的相关内容我搜索过,也看了下pkg在github的文档,能理解并且用上的也就 -t那部分,但是不知道怎么把pixso也打到包里面。。。</p><p>————</p><p>感谢大佬阅读到这里!</p>
git分支处理?
https://segmentfault.com/q/1010000044737621
2024-03-22T15:07:00+08:00
2024-03-22T15:07:00+08:00
一个凹
https://segmentfault.com/u/yigeao
0
<p>想问问,你们公司是如何处理Git分支的?</p><h2>你们公司会有几个分支?分别是哪几个分支?</h2><h2>线上bug是从哪个分支上拉取修改?然后如何合并?</h2>
已经使用了eslint还有必要去使用tree shaking吗?
https://segmentfault.com/q/1010000044745118
2024-03-26T03:15:51+08:00
2024-03-26T03:15:51+08:00
一个凹
https://segmentfault.com/u/yigeao
0
<p>在新的项目中,已经存在了eslint提示你定义了某某变量但是从来没有使用,这种情况下还有必要使用tree shaking吗?第三方库你又怎样判断是否有害呢?好矛盾呀,搞得好乱。烦请指点一下我吧。</p>
Mongoose性能问题,GPT让我修改,求解?
https://segmentfault.com/q/1010000044745432
2024-03-26T09:27:53+08:00
2024-03-26T09:27:53+08:00
依然洋葱
https://segmentfault.com/u/yiranyangcong
0
<p>NODEJS+ mongoose,GPT说我写的model层有内存泄漏问题,<br>大佬帮我看一下是否整的存在</p><p><img width="723" height="387" src="/img/bVdbUuC" alt="" title=""></p><p>左边是我写的,右边是GPT让我改的</p><p>麻烦帮我看一下,我写的这种是不是有弊端,我也不太熟悉</p>
webpack优化的一些疑问,希望各位赐教?
https://segmentfault.com/q/1010000044743909
2024-03-25T17:09:44+08:00
2024-03-25T17:09:44+08:00
一个凹
https://segmentfault.com/u/yigeao
0
<p>各位,目前在做一些项目优化的工作,有几个项目但是他们的webpack版本不一样,我想问问熟悉这方面的同学,关于多进程打包,多进程压缩各个版本之间是否存在差异?像webpack5这些本身是否就已经配置了?如果使用的是vuecli创建的项目会不会也配置了这些东西?还有splitChunks和tree shaking这些vuecli创建的项目或者说webpack本身是否自带的?第一次做这方面的优化,论坛上固然可查,但是依然让我心存疑问,以前只是学习的时候手动搭了几次webpack,但是并没有涉及到这些。希望懂的朋友可以不吝赐教,万分感谢。</p>
请问 nestjs microservice 怎么使用 graphql 定义接口?
https://segmentfault.com/q/1010000044738171
2024-03-22T17:14:14+08:00
2024-03-22T17:14:14+08:00
radiorz
https://segmentfault.com/u/radiorz
0
<p>请问 nestjs microservice 怎么使用 graphql 定义接口?</p>
pre-commit钩子不触发如何解决?
https://segmentfault.com/q/1010000044739701
2024-03-23T15:11:39+08:00
2024-03-23T15:11:39+08:00
ygtzz
https://segmentfault.com/u/ygtzz
0
<p>使用了pre-commit这个库,想在commit之前检查文件,结果git commit之后,脚本根本不执行,请问是什么原因?</p><p>"pre-commit" 配置的 ["echo", "check"] 未触发<br>package.json配置</p><pre><code class="json">{
"name": "test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"check": "node ./config/check.js",
"echo": "echo \"Error: I SHOULD FAIL LOLOLOLOLOL \" && exit 1"
},
"pre-commit": ["echo", "check"],
"author": "",
"license": "ISC",
"dependencies": {
"@svgdotjs/svg.draggable.js": "^3.0.3",
"@svgdotjs/svg.js": "^3.2.0"
},
"devDependencies": {
"pre-commit": "^1.2.2"
}
}</code></pre>
如何解决Node.js环境中npm安装Vue时的错误?
https://segmentfault.com/q/1010000044717466
2024-03-15T22:04:53+08:00
2024-03-15T22:04:53+08:00
小豆包
https://segmentfault.com/u/xiaodoubao_5950e97e70f0e
0
<p>nodeJS 安装配置好后好后 使用npm 安装vue等 总是报错</p><p><img width="723" height="362" src="/img/bVdbNdw" alt="使用npm 报错" title="使用npm 报错"></p><p>希望npm 能正常使用</p>
prisma定义的model 能不能分散到nest module 中进行定义?
https://segmentfault.com/q/1010000044734394
2024-03-21T15:45:33+08:00
2024-03-21T15:45:33+08:00
radiorz
https://segmentfault.com/u/radiorz
0
<p>prisma定义的model 能不能分散到nest module 中进行定义?<br>可以类似typeorm 使用 typescript 进行定义再转写么?</p>
pymongo如何获取文档的数量?就像mysql的count?
https://segmentfault.com/q/1010000044732831
2024-03-21T09:15:14+08:00
2024-03-21T09:15:14+08:00
iapplus
https://segmentfault.com/u/iapplus
0
<pre><code>import pymongo
# 连接 MongoDB 数据库
client = pymongo.MongoClient("mongodb://localhost:27017/")
# 连接集合
db = client["mydatabase"]
col = db["customers"]
# 获取所有文档并将结果存储在列表中
docs = list(col.find())
# 输出结果列表的长度
print("Number of documents:", len(docs))</code></pre><p>我要更高效的</p>
Express 错误:连接丢失:服务器关闭了连接。 大佬们如何解决?
https://segmentfault.com/q/1010000044729212
2024-03-20T07:40:43+08:00
2024-03-20T07:40:43+08:00
大方的松树
https://segmentfault.com/u/dafangdesongshu
0
<p><strong>Express 错误:连接丢失:服务器关闭了连接。 大佬们如何解决</strong></p><p>var express = require('express');<br>var app = express();</p><p>const cors = require('cors');</p><p>app.use(cors());</p><p>app.use(express.static('./public'))</p><p>const bodyParser = require('body-parser')</p><p>app.use(bodyParser.urlencoded({ extended: true }));</p><p>const router = require('./routes/api.js');</p><p>app.use('/api', router);</p><p>var server = app.listen(8081, function () {</p><p>var host = server.address().address<br> var port = server.address().port</p><p>console.log("应用实例,访问地址为 <a href="https://link.segmentfault.com/?enc=cjllIXUS86kZ7Fk9orC3bw%3D%3D.yONEF4Vy8Xe2lggYoQcP3EX9whajpjM%2FKJ5Y3ZbkMGg%3D" rel="nofollow">http://localhost:808</a>1", host, port)</p><p>})</p><p>// 报错信息<br>node:events:496</p><pre><code> throw er; // Unhandled 'error' event
</code></pre><p>Error: Connection lost: The server closed the connection.</p><pre><code>at Protocol.end (C:\Users\Administrator\Desktop\books_serve\node_modules\mysql\lib\protocol\Protocol.js:112:13)
at Socket.<anonymous> (C:\Users\Administrator\Desktop\books_serve\node_modules\mysql\lib\Connection.js:94:28)
at Socket.<anonymous> (C:\Users\Administrator\Desktop\books_serve\node_modules\mysql\lib\Connection.js:526:10)
at Socket.emit (node:events:530:35)
at endReadableNT (node:internal/streams/readable:1696:12)
at process.processTicksAndRejections (node:internal/process/task_queues:82:21)</code></pre><p>Emitted 'error' event on Connection instance at:</p><pre><code>at Connection._handleProtocolError (C:\Users\Administrator\Desktop\books_serve\node_modules\mysql\lib\Connection.js:423:8)
at Protocol.emit (node:events:518:28)
at Protocol._delegateError (C:\Users\Administrator\Desktop\books_serve\node_modules\mysql\lib\protocol\Protocol.js:398:10)
at Protocol.end (C:\Users\Administrator\Desktop\books_serve\node_modules\mysql\lib\protocol\Protocol.js:116:8)
at Socket.<anonymous> (C:\Users\Administrator\Desktop\books_serve\node_modules\mysql\lib\Connection.js:94:28)
[... lines matching original stack trace ...]
at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {</code></pre><p>fatal: true,<br> code: 'PROTOCOL_CONNECTION_LOST'<br>}</p><p>Node.js v20.11.0<br>[nodemon] app crashed - waiting for file changes before starting...<br>[nodemon] restarting due to changes...<br>[nodemon] starting <code>node .\app.js</code></p><p>各位大佬如何解决</p>
高德地图原生开发中,地图无法加载出来?
https://segmentfault.com/q/1010000044727966
2024-03-19T17:36:45+08:00
2024-03-19T17:36:45+08:00
一个凹
https://segmentfault.com/u/yigeao
0
<p>高德地图使用的原生,突然之间加载不出来是为什么?做了一下marker标记,然后就加载不出来,回退代码之后还是加载不出来。有做过原生高德地图的朋友吗?麻烦指导一下,谢谢。我要的效果很简单,就是在地图上标记设备位置,然后在标记上绑定一个点击事件,点击获取在线设备的状态。<br>另外有做过物联网的哥们吗?就是这个获取设备状态信息是服务端做还是前端做的?<br><img width="723" height="508" src="/img/bVdbPWQ" alt="image.png" title="image.png"></p>
nginx使用流程?
https://segmentfault.com/q/1010000044726730
2024-03-19T15:11:11+08:00
2024-03-19T15:11:11+08:00
聿夆昜
https://segmentfault.com/u/y_f_654362a186c7d
0
<p>只有一个nginx.conf文件,电脑没有做过其余任何操作,无安装或配置nginx... 的前提下<br>测试线上环境需要nginx代理<br>那前端人员接下来需要干什么</p><p>搜索的五花八门,也不知道该先干什么,大佬们有没有什么流程呢</p>
vue项目安装依赖,结果element-ui的依赖包里面突然多了个 _where的变量,指向本地的项目地址?
https://segmentfault.com/q/1010000044722955
2024-03-18T15:54:20+08:00
2024-03-18T15:54:20+08:00
LazyHua
https://segmentfault.com/u/lazyhua
0
<p>vue项目安装依赖,结果element-ui的依赖包里面突然多了个 _where的变量,指向本地的项目地址,我想问下这是为啥呀,怎么删掉呀???<br><img width="723" height="375" src="/img/bVdbODI" alt="1710748303366.png" title="1710748303366.png"></p>
音频资源播放问题:a标签与audio标签的差异?
https://segmentfault.com/q/1010000044721778
2024-03-18T12:53:22+08:00
2024-03-18T12:53:22+08:00
简单简同学
https://segmentfault.com/u/jiandanjiantongxue
0
<p>有一段音频的网络资源,把地址加到a标签的href里,然后点击跳转后浏览器能直接播放这段音频,但是把地址加到audio标签的src里却不能播放。<br>下面是资源地址:<br><code>https://lf6-lab-speech-tt-sign.bytespeech.com/tos-cn-o-14155/ocp9nbRY0DCNALVaoAlgeCIvI3t6NAjCHAFA2e?x-expires=1710733418&x-signature=QIHDzi2Ty41dP6ac1iSqVWCpvkQ%3D</code></p><p>复制粘贴地址在浏览器也打不开,只有用a标签跳转才能打开。是网络请求参数的问题吗?</p>
请教一下监听事件的原理,监听一个值的变化一般咋实现呀?
https://segmentfault.com/q/1010000044714315
2024-03-15T00:51:49+08:00
2024-03-15T00:51:49+08:00
wlcbwu
https://segmentfault.com/u/wlcb
0
<p>一直有个疑惑,监听事件的原理咋实现的,例如<strong>不用导网上的模块包,自己写一个监听的项目或者模块包,监听某个值变化了</strong>,例如某个数据是否存在变化。</p><p>我只能想到<em>While</em>循环,一直扫描触发的时间,当然定时器更好。但定时器的实质还是循环呀。</p><p>所以<strong>监听值的变化一般咋实现呀</strong>,<code>while</code>?感觉死循环总感觉资很容易挂。但是我接触过底层<strong>单片机</strong>也是用 <code>while</code> 实现的,还有<strong>PLC</strong>,主程序(main)都是一个无限扫描程序。</p><p><code>while</code>,死循环,但感觉对系统不太好(<code>while</code> 内只要有一个小小的 bug 就很致命,我有过几次电脑崩溃重启了)。</p><h2>> 在此谢谢各位大佬了</h2>
同时支持node和浏览器端的JS库如何写浏览器逻辑部分代码的测试用例?
https://segmentfault.com/q/1010000044708566
2024-03-13T13:53:23+08:00
2024-03-13T13:53:23+08:00
神话
https://segmentfault.com/u/shenhua_58690131dafc2
0
<h4>同时支持node和浏览器端的JS库如何写浏览器逻辑的测试用例??</h4><p>decrypt方法 代码如下:</p><pre><code> let workbookContent = Workbook.content;
if (!Buffer.isBuffer(workbookContent)) {
workbookContent = Buffer.from(workbookContent);
CFB.utils.prep_blob(workbookContent, 0);
}
output = xls97File.decrypt(cfb, workbookContent, password, input);</code></pre><p>// 这里是 workbookContent 在node 是一个buffer , 可以直接给下面的 decrypt 用, 但是在浏览器则不是,所以需要转一下成 buffer</p><p>比如这种逻辑要怎么写测试用例来覆盖?</p><pre><code>https://github1s.com/zurmokeeper/officecrypto-tool/blob/main/index.js#L19-L27
源码地址
async function decrypt(input, options) {
if (!Buffer.isBuffer(input)) {
// This is an ArrayBuffer in the browser. Convert to a Buffer.
if (ArrayBuffer.isView(input) || input instanceof ArrayBuffer) {
input = Buffer.from(input);
} else {
throw new Error('The input must be a buffer');
}
}
.... 省略一些代码
const Workbook = CFB.find(cfb, 'Workbook');
if (Workbook) {
let workbookContent = Workbook.content; // 这里是 workbookContent 在node 是一个buffer , 可以直接给下面的 decrypt 用, 但是在浏览器则不是,所以需要转一下成 buffer
if (!Buffer.isBuffer(workbookContent)) {
workbookContent = Buffer.from(workbookContent);
CFB.utils.prep_blob(workbookContent, 0);
}
output = xls97File.decrypt(cfb, workbookContent, password, input);
return output;
}</code></pre><p>node 端我可以直接这样写: 使用Jest 写完直接运行,因为是node环境所以就可以直接覆盖了</p><pre><code> it('agile decrypt', async () => {
try {
const input = await fs.readFile(`${filePath}/agile_pass_test.xlsx`);
const output = await officeCrypto.decrypt(input, {password: '123456'});
await fs.writeFile(`${filePath}/agile_out_success.xlsx`, output);
expect(200).toEqual(200);
} catch (error) {
throw error;
}
});</code></pre>
前端到底怎样来操作或者说设置缓存?
https://segmentfault.com/q/1010000044688586
2024-03-07T04:49:39+08:00
2024-03-07T04:49:39+08:00
一个凹
https://segmentfault.com/u/yigeao
0
<p>问一个好像很搞笑的问题,就是前端到底怎样来操作或者说设置缓存?搜索了一波,都在给科普缓存的字段什么意思,没有一个说到前端到底如何设置缓存,我的头都大了。懂的朋友麻烦告诉我好吗?谢谢了。</p>
如何在开发环境中安装指定版本的Node.js?
https://segmentfault.com/q/1010000044704128
2024-03-12T11:14:52+08:00
2024-03-12T11:14:52+08:00
李游Leo
https://segmentfault.com/u/shimiandeshatanku
1
<p>在dev ide安装时,Node必须是他指定的版本么?<br>如果高一点是都不行么?</p><blockquote>本文参与了<a href="https://segmentfault.com/a/1190000044600728">思否 HarmonyOS 技术问答马拉松</a>,欢迎正在阅读的你也加入。</blockquote>
element plus上传本地图片显示404?
https://segmentfault.com/q/1010000044697215
2024-03-09T19:37:11+08:00
2024-03-09T19:37:11+08:00
凭什么后来者居上
https://segmentfault.com/u/jimgif
0
<p>element plus上传本地图片显示404</p><pre><code class="vue"><template>
<el-form :model="formData" label-width="100px">
<el-form-item label="名称" required>
<el-input v-model="formData.name"></el-input>
</el-form-item>
<el-form-item label="分类" required>
<el-input v-model="formData.category"></el-input>
</el-form-item>
<el-form-item label="图片" required>
<el-upload
action="/api/uploadImage"
:show-file-list="false"
:before-upload="beforeUploadImage"
:on-success="handleSuccessImage">
<el-button size="small" type="primary">上传图片</el-button>
</el-upload>
</el-form-item>
<el-form-item label="文本" required>
<el-upload
action="/api/uploadText"
:show-file-list="false"
:before-upload="beforeUploadText"
:on-success="handleSuccessText">
<el-button size="small" type="primary">上传文本</el-button>
</el-upload>
</el-form-item>
<el-form-item label="音频" required>
<el-upload
action="/api/uploadAudio"
:show-file-list="false"
:before-upload="beforeUploadAudio"
:on-success="handleSuccessAudio">
<el-button size="small" type="primary">上传音频</el-button>
</el-upload>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm">提交</el-button>
</el-form-item>
</el-form>
</template>
<script>
import axios from '../api/axios'
export default {
data() {
return {
formData: {
name: '',
category: '',
image: '',
text: '',
audio: ''
}
};
},
methods: {
beforeUploadImage(file) {
console.log(this.beforeUploadFile(file, 'image'))
return this.beforeUploadFile(file, 'image');
},
beforeUploadText(file) {
return this.beforeUploadFile(file, 'text');
},
beforeUploadAudio(file) {
return this.beforeUploadFile(file, 'audio');
},
beforeUploadFile(file, type) {
const allowedTypes = {
image: ['image/jpeg', 'image/png'],
text: ['text/plain'],
audio: ['audio/mpeg', 'audio/wav']
};
if (!allowedTypes[type].includes(file.type)) {
this.$message.error(`上传${type === 'audio' ? '音频' : type}格式不正确`);
return false;
}
return true;
},
handleSuccessImage(response) {
this.formData.image = response.url;
},
handleSuccessText(response) {
this.formData.text = response.url;
},
handleSuccessAudio(response) {
this.formData.audio = response.url;
},
submitForm() {
axios.post('/users', this.formData)
.then(response => {
console.log('提交成功', response);
this.$message.success('提交成功');
this.resetForm();
})
.catch(error => {
console.error('提交失败', error);
this.$message.error('提交失败');
});
},
resetForm() {
this.formData.name = '';
this.formData.category = '';
this.formData.image = '';
this.formData.text = '';
this.formData.audio = '';
}
}
};
</script>
</code></pre><pre><code class="node">const express = require("express");
const bodyParser = require("body-parser");
const mongoose = require("mongoose");
const cors = require("cors");
const path = require("path");
const multer = require("multer");
const app = express();
app.use(cors());
const PORT = process.env.PORT || 3000;
// 连接到 MongoDB 数据库
mongoose
.connect("mongodb://127.0.0.1:27017/user", {
useNewUrlParser: true,
useUnifiedTopology: true,
})
.then(() => console.log("MongoDB 连接成功"))
.catch((err) => console.error("MongoDB 连接错误", err));
// 定义用户数据模型
const UserSchema = new mongoose.Schema({
name: String,
category: String,
image: String,
text: String,
audio: String,
});
const User = mongoose.model("User", UserSchema);
// 设置文件上传的存储引擎和路径
const storage = multer.diskStorage({
destination: function (req, file, cb) {
if (file.fieldname === "image") {
cb(null, "uploads/images");
} else if (file.fieldname === "text") {
cb(null, "uploads/texts");
} else if (file.fieldname === "audio") {
cb(null, "uploads/audios");
}
},
filename: function (req, file, cb) {
const extname = path.extname(file.originalname);
cb(null, Date.now() + extname);
},
});
const upload = multer({ storage: storage });
// 处理文件上传的路由
app.post("/api/uploadImage", upload.single("image"), (req, res) => {
res.json({ url: req.file.path });
});
app.post("/api/uploadText", upload.single("text"), (req, res) => {
res.json({ url: req.file.path });
});
app.post("/api/uploadAudio", upload.single("audio"), (req, res) => {
res.json({ url: req.file.path });
});
// 处理用户数据上传的路由
app.post("/users", (req, res) => {
const userData = req.body;
User.create(userData)
.then((resr) => {
console.log("用户创建成功", res);
})
.catch((err) => {
console.error("创建用户失败", err);
});
});
// 获取所有用户
app.get("/users", async (req, res) => {
try {
const users = await User.find();
res.json(users);
} catch (error) {
console.error("获取用户错误:", error);
res.status(500).json({ error: "获取用户错误" });
}
});
// 启动服务器
app.listen(PORT, () => {
console.log(`服务器运行在 http://localhost:${PORT}`);
});
</code></pre><p>我试过后端路由更改没有效果</p>
求问大佬,怎么解决 Sequelize 中使用 NOW 导致的日期时间转换错误?
https://segmentfault.com/q/1010000044689575
2024-03-07T11:26:07+08:00
2024-03-07T11:26:07+08:00
Linyr
https://segmentfault.com/u/linyr_65e931c3bfe5c
0
<p>sequelize使用NOW作为默认值插入一个时间,结果报错:nodejs.SequelizeDatabaseError: Conversion failed when converting date and/or time from character string.</p><pre><code>const {STRING, INTEGER, TEXT, DATE, NOW} = app.Sequelize;
const LoginLogs = app.model.define('wz_AdminLoginLogs', {
ID: {type: INTEGER, primaryKey: true, autoIncrement: true},
Username: STRING,
LoginIp: STRING,
Content: TEXT,
LastLoginTime: {type: DATE, defaultValue: NOW},
});</code></pre><p>这是代码,到底是哪里出错了呢?</p>
nodejs yarn build 报错下方信息: routines:ssl3_get_record:wrong version number ?
https://segmentfault.com/q/1010000044686871
2024-03-06T15:43:51+08:00
2024-03-06T15:43:51+08:00
CodeSheep
https://segmentfault.com/u/detykoruqeho6
1
<p>修改 vant源代码 执行 yarn build 命令的时候出现了下方报错<br>提示 SSL 版本不对<br><img width="723" height="21" src="/img/bVdbFfU" alt="image.png" title="image.png"></p><pre><code>> vant-cli build
(node:16840) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
i Install Dependencies 15:37:24
yarn install v1.22.21
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] Resolving packages...
[2/4] Fetching packages...
[-----------------------------------------------------------------------------------------------------------------------------------------------------------------------] 0/1631(node:7768) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
error Error: write EPROTO 08240000:error:0A00010B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:355:
at WriteWrap.onWriteComplete [as oncomplete] (node:internal/stream_base_commons:94:16)
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
Error: Command failed: yarn install --prod=false
at makeError (D:\DevCode___\xxxx\vant\node_modules\execa\index.js:174:9)
at D:\DevCode___\xxx\vant\node_modules\execa\index.js:278:16
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async Object.installDependencies (D:\DevCode___\xxx\vant\node_modules\@vant\cli\lib\common\manager.js:28:9)
at async Command.build (D:\DevCode___\A_xxx\vant\node_modules\@vant\cli\lib\commands\build.js:159:9) {
code: 1,
stdout: null,
stderr: null,
failed: true,
signal: null,
cmd: 'yarn install --prod=false',
timedOut: false,
killed: false
}
ERROR Build failed 15:37:28
</code></pre><p>试过修改 Internet SSL TLS 版本<br>试过清除 yarn 缓存,npm缓存,重新安装一样的报错<br>试过关闭代理,依旧报错<br>试过关闭 ssl-strict,也没用<br>试过淘宝镜像,依旧没用</p><p>开发环境 <br>node 21 <img width="527" height="56" src="/img/bVdbFfY" alt="image.png" title="image.png"> <br>win11</p>
git找不到node?
https://segmentfault.com/q/1010000044680656
2024-03-04T17:09:19+08:00
2024-03-04T17:09:19+08:00
fang
https://segmentfault.com/u/fang11
0
<p>git commit 后提示<br>'node' 不是内部或外部命令,也不是可运行的程序<br>或批处理文件。<br>husky - pre-commit hook exited with code 1 (error)<br>,有node而且在命令行正确出来node的,网上什么删除最近的提交等等方法都不行<br>最后就删除了git,重新创建版本库,就正常了<br>提交了几次后,又突然提示找不到node了<br>那就再次删除,后面又重演上面说的<br>然后重新克隆到新的文件夹也没有用,还是会提交了几次后,又突然提示找不到node了<br>删除了n多遍,也重新克隆了n多遍,不知道为啥这样</p><p>下面是项目中的配置</p><p>pre-commit :</p><pre><code>#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx lint-staged</code></pre><p>commit-msg :</p><pre><code>#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
npx --no-install commitlint --edit</code></pre><p>husky.sh:</p><pre><code>#!/usr/bin/env sh
if [ -z "$husky_skip_init" ]; then
debug () {
if [ "$HUSKY_DEBUG" = "1" ]; then
echo "husky (debug) - $1"
fi
}
readonly hook_name="$(basename -- "$0")"
debug "starting $hook_name..."
if [ "$HUSKY" = "0" ]; then
debug "HUSKY env variable is set to 0, skipping hook"
exit 0
fi
if [ -f ~/.huskyrc ]; then
debug "sourcing ~/.huskyrc"
. ~/.huskyrc
fi
readonly husky_skip_init=1
export husky_skip_init
sh -e "$0" "$@"
exitCode="$?"
if [ $exitCode != 0 ]; then
echo "husky - $hook_name hook exited with code $exitCode (error)"
fi
if [ $exitCode = 127 ]; then
echo "husky - command not found in PATH=$PATH"
fi
exit $exitCode
fi</code></pre>
vue项目怎样实现:新消息推送、实时更新、推送通知功能,有哪些实现方法?
https://segmentfault.com/q/1010000044678939
2024-03-04T11:01:46+08:00
2024-03-04T11:01:46+08:00
吃屎的别嫌屎臭
https://segmentfault.com/u/ruguoai_qingshenai
0
<p>如题:<br>我用的是定时请求接口数据。<br>请问还有哪些常用方法吗?<br>谢谢</p>
终端安装命令安装不了,请问是哪个地方出了问题?
https://segmentfault.com/q/1010000044678641
2024-03-04T10:21:04+08:00
2024-03-04T10:21:04+08:00
sunshine
https://segmentfault.com/u/sunshine_63730bf0b2649
0
<p>使用终端命令npm去安装脚手架报错<img width="723" height="221" src="/img/bVdbC6J" alt="" title="">网上能查到的都试了不管用</p><p>重装版本不行,切换网络不行,切换node版本不行</p>
vu3项目实现路由跳转到新页面,返回旧页面,保留跳转之前的旧页面数据?
https://segmentfault.com/q/1010000044630975
2024-02-12T10:45:15+08:00
2024-02-12T10:45:15+08:00
诸葛非卿
https://segmentfault.com/u/zhugefeiqing
0
<p>如题,各位我有一个项目,现在有一个需求,在弹出窗口中跳转到一个选择页面,选择完成之后返回原来的页面,如何保持原来的页面状态不变?<br>尝试过使用keep-alive但是效果不理想。<br>请问有什么办法,或者什么思路!<br>备注:页面都是同一个站点的</p>
vscode插件开发,如何使用绝对路径导入js模块?
https://segmentfault.com/q/1010000044654648
2024-02-24T14:38:47+08:00
2024-02-24T14:38:47+08:00
豁达的小虾米
https://segmentfault.com/u/huodadexiaoxiami
0
<p>vscode插件开发,如何使用绝对路径导入js模块?</p><p>我尝试以绝对路径导入js模块,智能提示没有问题,但运行调试就报错,如何解决这个问题?以下是详情。</p><p>jsconfig.js配置代码如下</p><pre><code>{
"compilerOptions": {
"module": "Node16",
"target": "ES2022",
"checkJs": true,
"lib": [
"ES2022"
],
"baseUrl": ".",
"paths": {
"@/*": ["./src/*"],
}
},
"exclude": [
"node_modules"
]
}</code></pre><p>导入js模块代码内容,所在文件路径:src/util/TestUtil.js</p><pre><code>let test={
test123(){
},
test567(){
}
}
module.exports= {
test:test,
};</code></pre><p>以绝对路径导入,调用const TestUtil = require('@/util/TestUtil.js')代码导入,输入TestUtil加小数点,有智能提示的截图<br><img width="723" height="217" src="/img/bVdbwSi" alt="" title=""></p><p>运行提示错误</p><pre><code>Activating extension 'undefined_publisher.vscode-plugin-todo' failed: Cannot find module '@/util/TestUtil.js'
Require stack:
- e:\Workspace\vscodePlugins\vscode-plugin-todo\src\box\box.js
- e:\Workspace\vscodePlugins\vscode-plugin-todo\extension.js
- e:\Users\hasee\AppData\Local\Programs\Microsoft VS Code\resources\app\out\vs\loader.js
- e:\Users\hasee\AppData\Local\Programs\Microsoft VS Code\resources\app\out\bootstrap-amd.js
- e:\Users\hasee\AppData\Local\Programs\Microsoft VS Code\resources\app\out\bootstrap-fork.js
- .</code></pre><p>如何解决这个问题</p>
Nodejs中文网是什么神秘组织在维护呢?
https://segmentfault.com/q/1010000044672010
2024-03-01T11:01:25+08:00
2024-03-01T11:01:25+08:00
清蒸鱼学编程
https://segmentfault.com/u/qingzhengyu_5dc3dfea0ff42
0
<p>里面还有包括很多前端框架的中文网,有些我还用的英文网站,原来都已经有中文了。但是网站本身没有组织的自我介绍,不知道是不是开源社区在维护</p><p><a href="https://link.segmentfault.com/?enc=hsNfsmiqCyvMOE5M5ys2yg%3D%3D.2b%2FBG9FkNmzKwfQGlQ7WT1oMTUYM61Os5Dk%2F6xiLCKU%3D" rel="nofollow">Nodejs中文网</a></p>
vue2使用better sqlite3为什么会报错?
https://segmentfault.com/q/1010000044665258
2024-02-28T15:08:37+08:00
2024-02-28T15:08:37+08:00
gothBoiClique
https://segmentfault.com/u/gothboiclique
-2
<p>vue2使用better sqlite3打开页面就报错<br>版本:<br>better-sqlite3 8.3.0<br>nodejs 16.20.2<br>在src/api下创建了database.js代码:</p><p>DB.db是我用SQLiteStudio在D盘手动创建的db文件</p><pre><code>const Database = require("better-sqlite3")
const path = require('path')
import { getCurrentTime } from '@/utils/index'
const dbPath = path.resolve('D:/DB.db')
console.log(dbPath)
const db = new Database(dbPath, { verbose: console.log })
export function addUser() {
var stmt = db.prepare("insert into user(id,name, describe,update_date,create_date) values(?,?,?,?,?)");
stmt.run(null,'测试1','测完给i', getCurrentTime(), getCurrentTime());
var return_info = {
'result': 1,
'info': '新增用户成功'
}
return return_info
}</code></pre><p>页面调用:</p><pre><code><template>
<div>
<el-button type="primary" icon="el-icon-edit" @click="add">Add</el-button>
</div>
</template>
<script>
import { addUser } from '@/api/database.js'
export default {
name: 'test',
methods: {
add(){
addUser.then(res=>{
console.log(res)
})
}
}
}
</script></code></pre><p>报错信息:</p><pre><code>TypeError: The "original" argument must be of type Function
at promisify (util.js:602:11)
at eval (backup.js:6:18)
at ./node_modules/better-sqlite3/lib/methods/backup.js (chunk-vendors.js:1697:1)
at __webpack_require__ (app.js:849:30)
at fn (app.js:151:20)
at Object.eval (database.js:72:29)
at eval (database.js:86:30)
at ./node_modules/better-sqlite3/lib/database.js (chunk-vendors.js:1661:1)
at __webpack_require__ (app.js:849:30)
at fn (app.js:151:20)</code></pre><p>更换了better sqlite3版本还是一样</p>
vite打包依赖,希望nodejs和web都能用,怎么做到?
https://segmentfault.com/q/1010000044647130
2024-02-21T22:45:14+08:00
2024-02-21T22:45:14+08:00
radiorz
https://segmentfault.com/u/radiorz
0
<p>包中包含了 node的 fs Buffer等,如果用polyfill node 就不能用,如果用external 前端引入时会直接Buffer is not defined</p>
midwayjs 有现成的制作微服务的操作么?
https://segmentfault.com/q/1010000044651315
2024-02-23T10:28:45+08:00
2024-02-23T10:28:45+08:00
radiorz
https://segmentfault.com/u/radiorz
0
<p><a href="https://link.segmentfault.com/?enc=mRG2hp0FS3EQ64SP5xqCOQ%3D%3D.M0SZPGEDmhw5RLZOj%2FNJ3kmpqmyK7eyIaC94iV3jtcA%3D" rel="nofollow">https://midwayjs.org/</a></p><p>像nest 直接提供了 microservice 包</p>
js或者node能否做到实时把语音传到后台?
https://segmentfault.com/q/1010000044650002
2024-02-22T17:55:34+08:00
2024-02-22T17:55:34+08:00
没有名字就是名字
https://segmentfault.com/u/wangsj00
0
<p>js或者node能否做到实时把语音传到后台?<br>如果可以的话能否监听到是否有声音(需要做有声音实时传输,没声音就不传输,或者能分割出有声音和没声音的部分,类似这个意思['有声音', '', '有声音'])</p><p>总体需求的通过前端把语音实时传给后端,后端翻译后在将文本实时返回给前端,所有一切都是实时的,</p>
求助,创建时不知道为什么会多出来2个字段?
https://segmentfault.com/q/1010000044647858
2024-02-22T10:29:01+08:00
2024-02-22T10:29:01+08:00
无悔
https://segmentfault.com/u/wuhui_65d6b0aa75979
0
<p>创建时不知道为什么会多出来2个字段?</p><p><img width="723" height="196" src="/img/bVdbu6B" alt="image.png" title="image.png">,<br><img width="634" height="86" src="/img/bVdbu6C" alt="image.png" title="image.png"></p>
webpack 异步引入的文件如何根据文件大小判断是否单独打包在一起?
https://segmentfault.com/q/1010000044645649
2024-02-21T15:25:42+08:00
2024-02-21T15:25:42+08:00
嘻倪孢
https://segmentfault.com/u/xybao
0
<p>我有一个组件库<br>index.ts 入口文件<br>a.jsx 组件<br>b.jsx<br>c.jsx<br>....</p><p>在入口文件中通过require.context('./', false, //.jsx$//, 'lazy') 方式异步引入文件, 这样每一个文件就分开打包,按需加载了。</p><p>但是现在存在文件就是 如果我有的组件很小只有1kb, 2kb,3kb这种小组件的我希望他能合并在一起,避免http请求过多? 我希望文件能合并到200kb左右一个, 又能异步加载,该如何解决?</p>
nestjs 为何直接引入 ts 库无法转换而 vite 可以?
https://segmentfault.com/q/1010000044645350
2024-02-21T14:31:27+08:00
2024-02-21T14:31:27+08:00
radiorz
https://segmentfault.com/u/radiorz
0
<p>我直接用 package.json 封了一个 ts 的库(未转换)<br>用vite做前端项目可以正常引入<br>用 nestjs 却会报错。<br>除了让ts 库直接转换为 ts 还有什么方法可以让 nestjs 的项目直接支持 ts源文件,<br>类似 vite 的依赖预构建, 省去依赖升级编译的操作。<br><a href="https://link.segmentfault.com/?enc=Ogu%2FgTZyjjNhC%2FRM9v%2BbVg%3D%3D.2bblal4u3r7114%2Bjvc9hQix91D%2BlrK0Q3LTG6mVqCbZpBOtCsu%2F4HPFlxNaU6d1TPcy1ZMrxUWm6N%2FzUPicVRe8apzCsz3m0Ug1YDJtQ9og%3D" rel="nofollow">https://cn.vitejs.dev/guide/features#npm-dependency-resolving...</a></p>
如何在Node.js中删除长时间未访问的文件?
https://segmentfault.com/q/1010000044637257
2024-02-18T17:34:12+08:00
2024-02-18T17:34:12+08:00
眉毛粗的筷子
https://segmentfault.com/u/meimaocudekuaizi
0
<p>想删除一些没有访问的文件,能不能获取到文件的最后访问时间呢</p><p>我用的是nodejs的sdk,获取的文件列表没有最后访问时间的字段</p>
如何在Node.js环境下绕过NVM for Windows的终端检测?
https://segmentfault.com/q/1010000044633635
2024-02-16T01:45:18+08:00
2024-02-16T01:45:18+08:00
愉快的消炎药
https://segmentfault.com/u/yukuaidexiaoyanyao
0
<p>各位大佬,请教一个问题,我想在 nodejs 环境下运行 nvm for windows 的指令,但是在 nvm(使用go语言) 最近更新的版本里,发现新增了终端检测代码:</p><pre><code>if !isTerminal() {
alert("NVM for Windows should be run from a terminal such as CMD or PowerShell.", "Terminal Only")
os.Exit(0)
}
// Capture any additional arguments
if len(args) > 2 {
detail = args[2]
@@ -180,6 +185,102 @@ func setNpmMirror(uri string) {
saveSettings()
}
func isTerminal() bool {
fileInfo, err := os.Stdout.Stat()
if err != nil {
return false
}
return (fileInfo.Mode() & os.ModeCharDevice) != 0
}</code></pre><p>请问我可以绕开这个检测吗</p><p>希望在nodejs环境下可以执行<code>nvm ls</code>等指令,使用过<code>child_process</code>中的<code>exec</code>方法但是无法绕开go中的终端检测。</p>
vscode 编译卡在 Starting compilation ?
https://segmentfault.com/q/1010000044627029
2024-02-08T11:09:25+08:00
2024-02-08T11:09:25+08:00
百度不知道
https://segmentfault.com/u/vue3
0
<p>vscode 编译卡在 Starting compilation...</p><pre><code>yarn run gulp vscode-win32-x64-min
yarn run v1.22.19
$ node --max-old-space-size=8192 ./node_modules/gulp/bin/gulp.js vscode-win32-x64-min
[11:05:57] Using gulpfile ***\gulpfile.js
[11:05:57] Starting 'vscode-win32-x64-min'...
[11:05:57] Starting clean-out-build ...
[11:05:57] Finished clean-out-build after 4 ms
[11:05:57] Starting build-web-node-paths ...
[11:05:57] Finished build-web-node-paths after 4 ms
[11:05:57] Starting compile-api-proposal-names ...
[11:05:57] Starting compilation api-proposal-names...
[11:05:57] Finished compilation api-proposal-names with 0 errors after 100 ms
[11:05:57] Finished compile-api-proposal-names after 108 ms
[11:05:57] Starting compile-src ...
[11:06:12] [mangler] Done collecting. Classes: 7387. Exported symbols: 8931
[11:06:15] [mangler] Done creating class replacements
[11:06:15] [mangler] Starting prepare rename edits
[11:06:15] Starting compilation...</code></pre><p>但是在运行 <code>.\scripts\code.bat</code> 的时候可以正常运行</p><p>请问这是为什么呢?</p>
如何在 Firestore 中根据 ID 和版本选择最大的版本?
https://segmentfault.com/q/1010000044626050
2024-02-07T16:42:57+08:00
2024-02-07T16:42:57+08:00
茫然的绿豆
https://segmentfault.com/u/mangrandelvdou
0
<p>firestore 中有一个 collection,里面有多条 ID 一样的记录,不同的是它们的内容和 version(作用是做版本控制),比如下面</p><table><thead><tr><th>id</th><th>version</th><th>content</th></tr></thead><tbody><tr><td>sdldf</td><td>1</td><td>内容1</td></tr><tr><td>ljff</td><td>2</td><td>内容2</td></tr><tr><td>sdldf</td><td>2</td><td>内容5</td></tr><tr><td>djfd</td><td>1</td><td>内容x</td></tr></tbody></table><p>我想实现的是相同 id 的记录只显示一条,是 version 数字最大的那条,那么上面的这个的显示结果就应该是</p><table><thead><tr><th>id</th><th>version</th><th>content</th></tr></thead><tbody><tr><td>ljff</td><td>2</td><td>内容2</td></tr><tr><td>sdldf</td><td>2</td><td>内容5</td></tr><tr><td>djfd</td><td>1</td><td>内容x</td></tr></tbody></table><p>我尝试了 groupBy 等,但 firebase 都不支持,请问这个该如何做呢?</p>
Node.js 框架选型:Koa.js、Egg.js 与 Express 哪个适合深入学习 或者其他框架?
https://segmentfault.com/q/1010000044623960
2024-02-06T17:02:22+08:00
2024-02-06T17:02:22+08:00
hscxbsy
https://segmentfault.com/u/hscxbsy_6555bd6255650
0
<p>现在学习node 主要学习哪个框架比较好呢 koa.js egg.js Express?</p><p>求应该主要学习哪个 哪个生态好</p>
axios怎么连续调用?
https://segmentfault.com/q/1010000044613576
2024-02-02T17:16:14+08:00
2024-02-02T17:16:14+08:00
简单简同学
https://segmentfault.com/u/jiandanjiantongxue
0
<h2>多个axios请求怎么按顺序实现?我写的是哪里出问题了,打印的res值都是来自第一个post请求的返回结果,第二个get请求里的res值没有获取到?</h2><pre><code class="javascript">axios({
method: 'POST',
url: 'https://openspeech.bytedance.com/api/v1/tts_async/submit',
headers: {
'Content-Type': 'application/json',
'Resource-Id': 'volc.tts_async.default',
'Authorization': 'Bearer;CiWImuQXN_xzNTZ5YyC5r'
},
data: {
"appid": "5565218",
"reqid": nanoid(30),
"text": '这是一段测试文字!',
"format": "wav",
"voice_type": "BV705_streaming"
}
}).then(function (res) {
console.log('post', res.data)
return axios({
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Resource-Id': 'volc.tts_async.default',
'Authorization': 'Bearer;CiWI1f4XN_xzNTZ5YyC5r'
},
url: `https://openspeech.bytedance.com/api/v1/tts_async/query?appid=5568&task_id=${res.data.task_id}`
})
}).then(function (res) {
console.log('get', res.data)
}).catch(err => {
console.log('get:err')
})</code></pre><p>把第二个then放里面也是一样,</p><pre><code class="javascript">axios({
method: 'POST',
url: 'https://openspeech.bytedance.com/api/v1/tts_async/submit',
headers: {
'Content-Type': 'application/json',
'Resource-Id': 'volc.tts_async.default',
'Authorization': 'Bearer;CiWImuQZhWXN_xzNTZ5YyC5r'
},
data: {
"appid": "556218",
"reqid": nanoid(30),
"text": '这是一段测试文字!',
"format": "wav",
"voice_type": "BV705_streaming"
}
}).then(function (res) {
console.log('post', res.data)
axios({
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Resource-Id': 'volc.tts_async.default',
'Authorization': 'Bearer;CiWImuQC1f4XN_xzNTZ5YyC5r'
},
url: `https://openspeech.bytedance.com/api/v1/tts_async/query?appid=556218&task_id=${res.data.task_id}`
}).then(function (res) {
console.log('get', res.data)
})
}).catch(function (err) {
console.log(err)
})</code></pre><p>前端新手,请多指教</p>
如何在Vue中使用path模块不报错?
https://segmentfault.com/q/1010000044610915
2024-02-02T01:49:13+08:00
2024-02-02T01:49:13+08:00
meow
https://segmentfault.com/u/meow_61e9647d230a9
0
<p>在vue中使用path模块提示“...resolve is not a function”?<br>我在vue中引入了path模块,使用了 path.resolve(...)函数,代码和浏览器控制台提示如下:<br><img width="723" height="853" src="/img/bVdblu0" alt="QQ截图20240202014455.png" title="QQ截图20240202014455.png"></p><p>这些代码我其实是参开了开源项目<strong>vue-element-admin</strong>,人家的代码也是这么写的,可我写的为什么就是报错?<br><img width="723" height="555" src="/img/bVdblu1" alt="QQ截图20240202014659.png" title="QQ截图20240202014659.png"></p>
nodejs项目使用docker部署为何失败?
https://segmentfault.com/q/1010000044604062
2024-01-30T23:31:56+08:00
2024-01-30T23:31:56+08:00
MonkeyDLaDen
https://segmentfault.com/u/monkeydladen
0
<p>nodejs使用thinkjs开发的项目docker-compose部署失败</p><p>我在用docker-compose部署一个node.js项目时遇见的无法部署,该项目之前使用pm2直接部署在宿主机是可以正常运行的,项目使用了thinkjs框架,下面的是我的docker-compose文件:</p><pre><code>services:
node:
image: node:18.17.1
volumes:
- /data/jxxw/node/h5-api/:/data/jxxw/node
working_dir: /data/jxxw/node
command: npm start
ports:
- "8362:8362"</code></pre><p>h5-api是我把node项目解压之后的文件夹,执行docker-compose up -d之后发现容器未启动,查看logs获得如下提示:</p><pre><code>> jxxw-api@1.0.0 start
> node production.js
node:internal/modules/cjs/loader:1080
throw err;
^
Error: Cannot find module 'thinkjs'
Require stack:
- /data/jxxw/node/production.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
at Module._load (node:internal/modules/cjs/loader:922:27)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:121:18)
at Object.<anonymous> (/data/jxxw/node/production.js:2:21)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/data/jxxw/node/production.js' ]
}
Node.js v18.17.1
</code></pre><p>看提示是未读取到thinkjs的依赖,据node开发同学反馈他的打包流程如下:<br>1.npm install<br>2.npm pack<br>之后就把生成的tgz文件给到我这边,<br>我尝试过写dockerfile文件解决,如下:</p><pre><code># 使用官方 Node.js 镜像
FROM node:18.17.1
# 设置工作目录
WORKDIR /data/jxxw/node
# 将当前目录下的所有内容都复制到位于 /app 的容器中
COPY . /data/jxxw/node
# 安装项目依赖
RUN npm install
# 暴露端口,供外部访问
EXPOSE 8362</code></pre><p>提示install失败:</p><pre><code> => ERROR [4/4] RUN npm install 1542.3s
------
> [4/4] RUN npm install:
1542.3 npm ERR! code ECONNREFUSED
1542.3 npm ERR! syscall connect
1542.3 npm ERR! errno ECONNREFUSED
1542.3 npm ERR! FetchError: request to https://registry.npmjs.org/ava failed, reason: connect ECONNREFUSED 104.16.28.34:443
1542.3 npm ERR! at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:130:14)
1542.3 npm ERR! at ClientRequest.emit (node:events:514:28)
1542.3 npm ERR! at TLSSocket.socketErrorListener (node:_http_client:501:9)
1542.3 npm ERR! at TLSSocket.emit (node:events:526:35)
1542.3 npm ERR! at emitErrorNT (node:internal/streams/destroy:151:8)
1542.3 npm ERR! at emitErrorCloseNT (node:internal/streams/destroy:116:3)
1542.3 npm ERR! at process.processTicksAndRejections (node:internal/process/task_queues:82:21)
1542.3 npm ERR! FetchError: request to https://registry.npmjs.org/ava failed, reason: connect ECONNREFUSED 104.16.28.34:443
1542.3 npm ERR! at ClientRequest.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/minipass-fetch/lib/index.js:130:14)
1542.3 npm ERR! at ClientRequest.emit (node:events:514:28)
1542.3 npm ERR! at TLSSocket.socketErrorListener (node:_http_client:501:9)
1542.3 npm ERR! at TLSSocket.emit (node:events:526:35)
1542.3 npm ERR! at emitErrorNT (node:internal/streams/destroy:151:8)
1542.3 npm ERR! at emitErrorCloseNT (node:internal/streams/destroy:116:3)
1542.3 npm ERR! at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
1542.3 npm ERR! code: 'ECONNREFUSED',
1542.3 npm ERR! errno: 'ECONNREFUSED',
1542.3 npm ERR! syscall: 'connect',
1542.3 npm ERR! address: '104.16.28.34',
1542.3 npm ERR! port: 443,
1542.3 npm ERR! type: 'system',
1542.3 npm ERR! requiredBy: '.'
1542.3 npm ERR! }
1542.3 npm ERR!
1542.3 npm ERR! If you are behind a proxy, please make sure that the
1542.3 npm ERR! 'proxy' config is set properly. See: 'npm help config'
1542.3
1542.3 npm ERR! A complete log of this run can be found in: /root/.npm/_logs/2024-01-30T14_55_34_130Z-debug-0.log
------
Dockerfile:8
--------------------
6 | COPY . /data/jxxw/node
7 | # 安装项目依赖
8 | >>> RUN npm install
9 | # 暴露 8000 端口,供外部访问
10 | EXPOSE 8362
--------------------
ERROR: failed to solve: process "/bin/sh -c npm install" did not complete successfully: exit code: 1
ERROR: Service 'node' failed to build : Build failed
</code></pre><p>文件夹里面的内容:<br><img width="623" height="46" src="/img/bVdbkVI" alt="image.png" title="image.png"><br><img width="337" height="21" src="/img/bVdbkVK" alt="image.png" title="image.png"></p><p>麻烦大佬指点为何,个人理解是thinkjs没有被正确的install,如果我想只写docker-compose文件不写dockerfile文件应该如何操作</p>
docker容器日志能否设置存储到别的路径?
https://segmentfault.com/q/1010000044592398
2024-01-26T17:01:47+08:00
2024-01-26T17:01:47+08:00
练练的da
https://segmentfault.com/u/mr_q__4_6
0
<p>使用docker运行了php容器, nginx容器 <br>通常查看日志都是使用docker logs php或nginx<br>发现默认的这些日志是存储在容器目录中的<br>如 "/var/lib/docker/containors/php/php.json" "/var/lib/docker/containors/nginx/nginx.json"<br>有什么办法能让日志统一存储在别的位置,<br>如"/home/logs" 目录下?</p>
安装 electron 失败?
https://segmentfault.com/q/1010000044589622
2024-01-25T17:33:51+08:00
2024-01-25T17:33:51+08:00
心语花束
https://segmentfault.com/u/flylee2017
0
<p><img width="723" height="342" src="/img/bVdbfXf" alt="image.png" title="image.png"><br>在安装 electtron 使总是失败,按照报错的信息提示,是证书已过期,感觉很奇怪,这里的证书是指什么证书呢。<br>环境信息:window10、node@18.19.0、npm@10.2.3。<br>该如何解决上面的问题呢?尝试多种网上的方式,均没有得到解决,使用的镜像是如下所示是国内镜像:<br><img width="645" height="151" src="/img/bVdbfXz" alt="image.png" title="image.png"></p>
electron main 使用 ws 报错 ws does not work in the browser?
https://segmentfault.com/q/1010000044590294
2024-01-25T22:33:14+08:00
2024-01-25T22:33:14+08:00
百度不知道
https://segmentfault.com/u/vue3
0
<p>main 进程代码:</p><pre><code>import WebSocket from 'ws';
const ws = new WebSocket();
console.log({ ws });</code></pre><p>错误:</p><pre><code>ws does not work in the browser. Browser clients must use the native WebSocket object</code></pre><p><a href="https://link.segmentfault.com/?enc=0xh8hHnjTUOH3Y%2FSYrKZyw%3D%3D.kb%2FPfyAp6IHZWpMm2XEORLAXki9UtUjtMXLrcbLwYYFO0NLHl6wlShpl6mLx0Z0z3RJa0VxPtr%2Fb0C5mN%2FcCzg%3D%3D" rel="nofollow">看到相关issues</a><br><a href="https://link.segmentfault.com/?enc=YnwEgUh648X%2B4RUIcPcgYg%3D%3D.hKpSI9zF0CX6T4TsIQX6qDluAkd5BVGNi6sXrt65DfA9kyjiwt2KlrhTqlABxwQN" rel="nofollow">ws仓库</a></p><p>ws 模块的 package.json</p><pre><code class="json"> "exports": {
".": {
"browser": "./browser.js",
"import": "./wrapper.mjs",
"require": "./index.js"
},
"./package.json": "./package.json"
}</code></pre><p>奇怪的是 electron main 进程为什么加载的是 <code>browser</code>, 而不是 <code>import</code> ?</p>
请问 nestjs 有类似 mycat 的分布式数据库中间件么?
https://segmentfault.com/q/1010000044584950
2024-01-24T13:43:04+08:00
2024-01-24T13:43:04+08:00
radiorz
https://segmentfault.com/u/radiorz
0
<p>请问 nodejs 中有 类似mycat 或 sharingjdbc的分布式数据库中间件么</p>
nuxt项目npm引入了一个vue3开发的包,打包时会报ERR_REQUIRE_ESM]: Must use import to load ES Module,该如何忽略这个包里的eslint?
https://segmentfault.com/q/1010000044586953
2024-01-24T22:01:48+08:00
2024-01-24T22:01:48+08:00
旖旎chen大猪头
https://segmentfault.com/u/shuigeqianliaoxiaoyu
0
<p>nuxt项目npm引入了一个vue3开发的包,打包时会报ERR_REQUIRE_ESM]: Must use import to load ES Module,该如何忽略这个包里的eslint?</p><p>本地开发的nuxt项目,node版本是14.17,引入的npm包是别的项目组开发的,他们的node是16以上。<br>在打包npm run generate时,会报Error [ERR_REQUIRE_ESM]: Must use import to load ES Module。导致生成index.html文件失败。<br>通过查看node_modules里的引入npm包发现他们的package.json有引入eslint v8.16。这个报错是他们的eslint抛出导致的还是说是因为我们本地node版本太低导致的呢?</p><p>该如何解决</p>