小编mih*_*hai的帖子

如何将文本文件包含到javascript中

有没有办法将一些文本从另一个文件加载到javascript,没有服务器端代码?

我正在考虑使用另一个元素将文本保存在一些注释中,但我不知道如何用javascript读取它的源代码.

就像是:

<script src="myfile.js"></script>

<script> function readMyText() { ... }</script>

在myfile.js中: /* some text */

javascript import inline include

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

Express JS Keep Session Alive重启

我正在尝试重新启动并使用nodemon保持会话处于活动状态,但是当您重新启动会话时会被销毁..我想知道是否有任何方法可以继续使用nodemon或其他节点js库会话.

脚本":{//"开始":"node ./bin/www""start":"nodemon ./bin/www"}

谢谢你的时间

node.js express

6
推荐指数
2
解决办法
2630
查看次数

使用 npm 安装时重命名包

在现有的 Nodejs 项目上工作时,其中一个包不在我的控制范围内,例如public-package. 当我尝试发布新版本时,我必须使用新的包名称进行部署,例如my-package.

例如,

{
  ...
    "dependencies": {
    "public-package": "1.0.123",
    ...
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

在源代码中,有很多行,例如require('public-package')

那么我如何使用我的包,在npm install不更改代码的情况下直接将其重命名为require('public-package')to require('my-package')

例如

{
  ...
    "dependencies": {
    "public-package": "my-package@1.0.10",   # <= how to make this work?
    ...
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

我可以做些什么来让它像上面的代码一样工作吗?

node.js npm

6
推荐指数
1
解决办法
4599
查看次数

NodeJS 流出 AWS Lambda 函数

我们正在尝试将我们的 zip 微服务从 nodejs Express 中的常规应用程序迁移到与 AWS Lambda 集成的 AWS API Gateway。
我们当前的应用程序向我们的 API 发送请求,获取附件列表,然后访问这些附件并将其内容以 zip 存档的形式返回给用户。它看起来像这样:

module.exports = function requestHandler(req, res) {

  //...
  //irrelevant code
  //...

  return getFileList(params, token).then(function(fileList) {
    const filename = `attachments_${params.id}`;
    res.set('Content-Disposition', `attachment; filename=${filename}.zip`);

    streamFiles(fileList, filename).pipe(res); <-- here magic happens
  }, function(error) {
    errors[error](req, res);
  });
};
Run Code Online (Sandbox Code Playgroud)

除了必须从 Lambda 函数中传输内容的部分之外,我已经设法完成了所有工作。
我认为可能的解决方案之一是使用 aws-serverless-express,但我想要一个更优雅的解决方案。

任何人有任何想法?甚至可以从 Lambda 中流出吗?

amazon-web-services node.js express aws-lambda

6
推荐指数
1
解决办法
1988
查看次数

Node.js无法找到模块 - 在Windows上干扰cygwin

我正在测试Bootstrap框架(来自Twitter)并尝试在安装Node.js后在本地构建它.它失败了,因为它找不到较少的模块(我也用'npm install -g less'安装):

C:\Users\geir\code\bootstrap>make
lessc html/less/bootstrap.less > html/css/bootstrap.css

node.js:201
    throw e; // process.nextTick error, or 'error' event on first tick
          ^
Error: Cannot find module 'C:\cygdrive\c\Users\geir\AppData\Roaming\npm\node_modules\less\bin\lessc'
    at Function._resolveFilename (module.js:332:11)
    at Function._load (module.js:279:25)
    at Array.0 (module.js:479:10)
    at EventEmitter._tickCallback (node.js:192:40)
Makefile:2: recipe for target `all' failed
make: *** [all] Error 1
Run Code Online (Sandbox Code Playgroud)

它失败的原因是因为当make正在寻找模块时,"cygdrive"被预先添加到文件夹层次结构中,我已经验证了thtat'minorec'实际上是在C:\ Users\geir\AppData\Roaming \npm \中找到的node_modules\less\bin\lessc,我可以从命令行运行它.

我试过以下但没有成功:

  • 重新排序PATH env变量中的文件夹,以便node.js和npm在cygwin之前出现 - 相同的结果.
  • 从PATH中删除cygwin - make命令停止工作.
  • 使用/不使用'-g'参数安装'less'(npm)
  • 重新安装node.js

任何线索?

cygwin less node.js npm twitter-bootstrap

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

jsdom不处理网页内的脚本

我是nodejs的新手.我想使用jsdom来解析一些可能包含脚本代码的网页.但我得到错误表示函数或变量未定义.任何人都可以给出一些指示.

我的代码

var jsdom = require('jsdom');

jsdom.env({
  html: 'http://10.200.0.10:8080/test/a.html',
  scripts: [
    'http://code.jquery.com/jquery-1.5.min.js'
  ],
  done: function(errors, window) {
    var $ = window.$;
    window.onload();
    console.log(window.a);
  }
});
Run Code Online (Sandbox Code Playgroud)

和HTML页面在这里

<html>
<head>
    <script>
    var a = 0;
    function loads(){
        a=1000;
    }
    </script>
</head>
<body onload='loads()'>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

并在下面收到错误消息

dfddddfdf
undefined:1: ReferenceError: loads is not defined
loads()
^
ReferenceError: loads is not defined
    at unknown source
    at /root/node_modules/jsdom/node_modules/contextify/lib/contextify.js:10:24
    at /root/node_modules/jsdom/lib/jsdom/level1/core.js:1024:50
    at /root/testnode.js:18:12
    at Array.0 (/root/node_modules/jsdom/lib/jsdom.js:199:39)
    at EventEmitter._tickCallback (node.js:192:40)

node.js:201
        throw e; // process.nextTick error, or …
Run Code Online (Sandbox Code Playgroud)

html javascript node.js jsdom

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

Rails 重复 sql 查询,即使包含包含

我无法理解为什么在这种情况下会生成两个重复的 sql 查询:

我有一个帖子has_many :comments

post = Post.where(id: 4).includes(:comments).first
Run Code Online (Sandbox Code Playgroud)

生成这些sql语句:

SELECT "posts".* FROM "posts" WHERE "posts"."id" = 4 LIMIT 1
SELECT "comments".* FROM "comments" WHERE "comments"."post_id" IN (4)
Run Code Online (Sandbox Code Playgroud)

现在:

comment = post.comments.first
Run Code Online (Sandbox Code Playgroud)

(没有 sql - 好)
但是:

post = comment.post
Run Code Online (Sandbox Code Playgroud)

生成相同的sql:

SELECT "posts".* FROM "posts" WHERE "posts"."id" = 4 LIMIT 1
Run Code Online (Sandbox Code Playgroud)

看起来对象没有在内部绑定。有没有办法可以手动执行此操作以避免第二个sql?

activerecord ruby-on-rails ruby-on-rails-3

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

如何获得从客户端到服务器的单程旅行的延迟时间

我想知道是否有办法获得客户端向服务器发送消息和接收该消息的服务器之间的时间(以毫秒为单位)

我无法将服务器和客户端使用的时间(以毫秒为单位)进行比较,Date.now()因为每台设备可能会关闭几秒钟.

我可以找到双向旅行的时间,记录发送消息的时间,并在收到来自服务器的消息时再次记录时间.但是,消息从客户端到服务器所需的时间可能与消息在双向行程中从服务器到达客户端的时间不同.所以我不能简单地将这个时间除以2.

关于如何找到这个时间或至少Date.now()在客户端和服务器之间的区别的任何建议?

提前致谢.

javascript node.js

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

未捕获的类型错误:PouchDB 不是构造函数

我正在努力理解这个错误:Uncaught TypeError: PouchDB is not a constructor

代码如下:

var PouchDB = require("pouchdb");
var db = new PouchDB("scr");
Run Code Online (Sandbox Code Playgroud)

我已经阅读了它如何与类型相关并添加:

 "@types/node": "^10.12.0",
 "@types/pouchdb": "^6.3.2",
Run Code Online (Sandbox Code Playgroud)

到我的 package.json 应该有帮助,但事实并非如此。我已经在另一个简单的 .js 文件上进行了测试并且可以正常工作,但在我的主应用程序上却不是。不过,我不明白为什么它不起作用。小袋文档非常​​清楚https://pouchdb.com/api.html#create_document

我应该提到我在电子应用程序的上下文中运行它,而不是在浏览器中。

我在这一点上感到困惑,任何帮助将不胜感激。干杯!

javascript node.js pouchdb electron

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

Vim更换换行

我拒绝了Vim,但现在已经放弃了.它通过黄油来制作像热刀一样的大文件.

情况:我有一个大文本文件,我想在每行的开头和结尾放置一个管道字符.

问题:这些Vims和其他变体不起作用:

:%s/$/|\$|
:%s/\r/|\r|
:%s/$/|\r|
Run Code Online (Sandbox Code Playgroud)

我怀疑解决这个问题很简单,但搜索Google和Stack并没有帮助.

vim

4
推荐指数
2
解决办法
103
查看次数