标签: node.js

如何在ExpressJS中结束会话

我觉得这必须埋在文档中的某处,但我找不到它.

你如何在ExpressJS中关闭或结束或杀死(无论如何)会话?

session node.js express

82
推荐指数
7
解决办法
10万
查看次数

nodejs - 第一个参数必须是字符串或缓冲区 - 当使用带有http.request的response.write时

我只是想创建一个输出给定URL的HTTP状态的节点服务器.

当我尝试用res.write刷新响应时,我得到错误:抛出新的TypeError('第一个参数必须是字符串或缓冲区');

但如果我用console.log替换它们,一切都很好(但我需要将它们写入浏览器而不是控制台).

代码是

var server = http.createServer(function (req, res) {
    res.writeHead(200, {"Content-Type": "text/plain"});

    request({
        uri: 'http://www.google.com',
        method: 'GET',
        maxRedirects:3
    }, function(error, response, body) {
        if (!error) {
            res.write(response.statusCode);
        } else {
            //response.end(error);
            res.write(error);
        }
    });     

    res.end();
});
server.listen(9999);
Run Code Online (Sandbox Code Playgroud)

我相信我应该在某个地方添加一个回调,但很困惑,任何帮助都表示赞赏.

http callback node.js

82
推荐指数
4
解决办法
19万
查看次数

需要使用Node.js压缩整个目录

我需要使用Node.js压缩整个目录.我目前正在使用node-zip,每次进程运行时都会生成一个无效的ZIP文件(从这个Github问题可以看出).

是否有另一个更好的Node.js选项可以让我压缩目录?

编辑:我最终使用归档

writeZip = function(dir,name) {
var zip = new JSZip(),
    code = zip.folder(dir),
    output = zip.generate(),
    filename = ['jsd-',name,'.zip'].join('');

fs.writeFileSync(baseDir + filename, output);
console.log('creating ' + filename);
};
Run Code Online (Sandbox Code Playgroud)

参数的样本值:

dir = /tmp/jsd-<randomstring>/
name = <randomstring>
Run Code Online (Sandbox Code Playgroud)

更新:对于那些询问我使用的实现的人,这里是我的下载器的链接:

zip node.js

82
推荐指数
6
解决办法
8万
查看次数

npm:为什么版本"0.1"无效?

我必须将我的npm app的版本从0.1更改为0.0.1,以便npm不要这样做.

$ npm install
npm ERR! install Couldn't read dependencies
npm ERR! Error: invalid version: 0.1
npm ERR!     at validVersion (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modul
es/read-package-json/read-json.js:571:40)
npm ERR!     at final (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read
-package-json/read-json.js:323:23)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:139:33
npm ERR!     at cb (/usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/slide/l
ib/async-map.js:48:11)
npm ERR!     at /usr/local/Cellar/node/0.10.5/lib/node_modules/npm/node_modules/read-packag
e-json/read-json.js:301:48
npm ERR!     at fs.js:207:20
npm ERR!     at Object.oncomplete (fs.js:107:15)
npm ERR! If you need help, you may report this log at:
npm ERR!     <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR!     <npm-@googlegroups.com>

npm ERR! …
Run Code Online (Sandbox Code Playgroud)

node.js npm

82
推荐指数
3
解决办法
4万
查看次数

使用Node.js将视频文件流式传输到html5视频播放器,以便视频控件继续工作?

Tl;博士 - 问题:

使用Node.js处理将视频文件流式传输到html5视频播放器的正确方法是什么,以便视频控件继续工作?

认为这与处理标题的方式有关.无论如何,这是背景信息.代码有点冗长,但是,它非常简单.

使用Node将小视频文件流式传输到HTML5视频很容易

我学会了如何轻松地将小视频文件流式传输到HTML5视频播放器.通过这种设置,控件在我无需任何工作的情况下工作,视频流完美无瑕.此处提供了包含示例视频的完整工作代码的工作副本,可在Google Docs上下载.

客户:

<html>
  <title>Welcome</title>
    <body>
      <video controls>
        <source src="movie.mp4" type="video/mp4"/>
        <source src="movie.webm" type="video/webm"/>
        <source src="movie.ogg" type="video/ogg"/>
        <!-- fallback -->
        Your browser does not support the <code>video</code> element.
    </video>
  </body>
</html>
Run Code Online (Sandbox Code Playgroud)

服务器:

// Declare Vars & Read Files

var fs = require('fs'),
    http = require('http'),
    url = require('url'),
    path = require('path');
var movie_webm, movie_mp4, movie_ogg;
// ... [snip] ... (Read index page)
fs.readFile(path.resolve(__dirname,"movie.mp4"), function …
Run Code Online (Sandbox Code Playgroud)

javascript video html5 node.js

82
推荐指数
2
解决办法
11万
查看次数

如何与Socket.IO 1.x和Express 4.x共享会话?

如何与Socket.io 1.0和Express 4.x共享会话?我使用Redis商店,但我认为这无关紧要.我知道我必须使用中间件来查看cookie和获取会话,但不知道如何.我搜索但找不到任何工作

    var RedisStore = connectRedis(expressSession);
    var session = expressSession({
        store: new RedisStore({
            client: redisClient
        }),
        secret: mysecret,
        saveUninitialized: true,
        resave: true
    });
    app.use(session);

    io.use(function(socket, next) {
        var handshake = socket.handshake;
        if (handshake.headers.cookie) {
            var str = handshake.headers.cookie;
            next();
        } else {
            next(new Error('Missing Cookies'));
        }
    });
Run Code Online (Sandbox Code Playgroud)

session node.js express socket.io

82
推荐指数
3
解决办法
4万
查看次数

关于gulp事件的console.log到stdout

我想在gulp任务运行或运行时登录到stdout(配置环境).

像这样的东西:

gulp.task('scripts', function () {
  var enviroment = argv.env || 'development';
  var config = gulp.src('config/' + enviroment + '.json')
      .pipe(ngConstant({name: 'app.config'}));
  var scripts = gulp.src('js/*');

  return es.merge(config, scripts)
    .pipe(concat('app.js'))
    .pipe(gulp.dest('app/dist'))
    .on('success', function() { 
      console.log('Configured environment: ' + environment);
    });
});
Run Code Online (Sandbox Code Playgroud)

我不确定我应该回应什么事件或在哪里找到这些列表.有什么指针吗?非常感谢.

javascript node.js gulp

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

Node.js中的后台进程

处理NodeJS应用程序中的后台进程有什么好处?

场景:在用户向应用程序发布内容后,我想要处理数据,从外部资源请求其他数据等.所有这些都非常耗时,所以我想要它来自req/res循环.理想的情况是拥有一个可以快速转储作业的作业队列,守护程序或任务运行器将始终使用最旧的作业并对其进行处理.

在RoR中,我会用延迟工作这样做.这个API的Node等价物是什么?

javascript background-process task-queue node.js

82
推荐指数
4
解决办法
5万
查看次数

NPM卡住了同样的错误EISDIR:对目录的非法操作,错误读取(本机)

无论我在哪个目录,以及在cmd.exe中的"npm"后输入的内容,我都会遇到此错误.这是npm-debug.log:

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js' ]
2 info using npm@2.14.12
3 info using node@v4.2.6
4 verbose stack Error: EISDIR: illegal operation on a directory, read
4 verbose stack     at Error (native)
5 verbose cwd C:\Users\me
6 error Windows_NT 6.1.7601
7 error argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js"
8 error node v4.2.6
9 error npm  v2.14.12
10 error code EISDIR
11 error errno -4068
12 error …
Run Code Online (Sandbox Code Playgroud)

windows file-permissions cmd node.js npm

82
推荐指数
8
解决办法
13万
查看次数

有没有办法修复 package-lock.json lockfileVersion 以便 npm 使用特定格式?

如果两个不同的开发人员正在使用不同版本在最初创建的项目节点(12/15)NPM(6/7)的使用package-lock.json "lockfileVersion": 1,开发者在使用NPM 7X安装新的软件包似乎package-lock.json是重新创建的使用"lockfileVersion": 2.

这似乎会给使用 npm v6 的开发人员带来问题,因为它尝试使用lockfileVersion 2,但最终会产生新的差异。

npm WARN read-shrinkwrap 这个版本的 npm 兼容 lockfileVersion@1,但是 package-lock.json 是为 lockfileVersion@2 生成的。我会努力做到最好!

有什么方法可以指定较新版本的npmto only use "lockfileVersion": 1?还是我们只需要让所有开发人员都使用同一版本npm

node.js npm package-lock.json

82
推荐指数
6
解决办法
9万
查看次数