小编Tom*_*Tom的帖子

使用node.js HTTP,res.end()如何保证套接字断开?

这是node.js的end实现:

OutgoingMessage.prototype.end = function(data, encoding) {
  if (this.finished) {
    return false;
  }
  if (!this._header) {
    this._implicitHeader();
  }

  if (data && !this._hasBody) {
    console.error('This type of response MUST NOT have a body. ' +
                  'Ignoring data passed to end().');
    data = false;
  }

  var ret;

  var hot = this._headerSent === false &&
            typeof(data) === 'string' &&
            data.length > 0 &&
            this.output.length === 0 &&
            this.connection &&
            this.connection.writable &&
            this.connection._httpMessage === this;

  if (hot) {
    // Hot path. They're doing …
Run Code Online (Sandbox Code Playgroud)

http httprequest node.js

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

为什么我的makefile没有设置NODE_ENV?

这是我的Makefile:

start:
    make start-prod

start-dev:
    @NODE_ENV=development
    make start-bare

start-prod:
    @NODE_ENV=production
    make start-bare

start-bare:
    node src/bootstrap

test:
    @NODE_ENV=test
    mocha --ignore-leaks $(shell find ./test -name \*test.js)

.PHONY: start start-dev start-prod start-bare test
Run Code Online (Sandbox Code Playgroud)

当我跑的make start-dev时候process.env.NODE_ENV等于undefined.为什么会这样?

makefile environment-variables node.js

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

意外的运算符[:git:在bourne shell脚本中'if'条件语句

我通过大量视频观看了一个优秀的shell脚本课程.现在我认为我对Bourne shell非常熟悉,我决定编写我的第一个shell脚本.

脚本目标:检查git工作目录是否干净.如果是这样,请将工作目录覆盖到名为的分支deployment.最后,将部署分支推送到origin.

我最终得到了这段代码:

#!/bin/sh

######################################################
# Deploys working directory to git deployment branch.
# Requires that the working directory is clean.
######################################################

#check if the working directory is clean
if [ git diff-index --quiet HEAD ]
then
    if [ git branch -f deployment ]
    then
        if [ git push origin deployment ]
        then
            echo
            echo "OK. Successfully deployed to git deployment branch."
            echo
            exit 0 #success
        else
            echo
            echo "Error: failed to push deployment branch …
Run Code Online (Sandbox Code Playgroud)

unix debugging bash shell sh

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

是什么导致了这些javascript验证错误(隐含的全局和已定义的var)?

任何人都可以解释为什么:

function doAjax() {
    var xmlHttpReq = false;
    try { // Firefox, Opera 8.0+ and Safari
        xmlHttpReq = new XMLHttpRequest();
    }
    catch (e) { // Internet Explorer
        try {
            xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e) {
            try {
                xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch (e) {
                alert("Your browser does not support AJAX. Please use an AJAX compatible browser.");
                return false;
            }
        }
    }
    xmlHttpReq.open('GET', 'handler.php', true);
    xmlHttpReq.onreadystatechange = function() {
        if (xmlHttpReq.readyState == 4) {
            var response = xmlHttpReq.responseText; …
Run Code Online (Sandbox Code Playgroud)

javascript validation ajax

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

在多人游戏中处理能力使用的好方法?

我编写了一个基于客户端<>服务器的多人游戏并完成了基础知识(它是一个用 actionscript 3 编写的 Flash 客户端)。下一步将是实施一个系统,让我可以轻松地为游戏添加能力。

这里的问题是一种能力可以做很多事情。例如。玩家 A 对玩家 B 使用“修复”能力,必须发生以下情况:

  • 玩家 A 向服务器发送消息通知有关该操作的信息
  • 玩家 A 现在在自己的船上显示“修复铸造”动画
  • 服务器必须通知该船 A 附近的所有玩家现在有“修复铸造”动画
  • 服务器必须增加玩家B的“健康”,因为它已被玩家A修复
  • 服务器必须通知附近的所有玩家玩家 B 现在有不同的生命值
  • 服务器必须通知附近的所有玩家玩家 B 应该显示“正在修复”动画

这只是一个例子,一个简单的能力必须发生很多事情。我可以进入每个对象并为这个咒语添加代码行。但是,当我需要添加很多(约 50 个)能力时,这会变得一团糟。另请注意,有些能力与其他能力完全不同,有些必须显示动画,有些则不会。有些将不得不损坏,有些将不得不增加统计数据等。

那么,这种“能力系统”通常是如何处理客户端和服务器端的呢?

actionscript-3

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

为什么self :: function()和$ self-> variable或self :: $ variable即使有$ this-> function()和$ this-> variable(PHP)?

我对这两个关键字以及在PHP5中使用它们的方式感到困惑.我认为"this"用于实例对象(不是静态的),而"self"是指对象本身,而不是它的实例,因此在静态对象中使用.对?

现在,我相信在类的静态方法中正确使用它来调用另一个静态变量/方法如下:

self::doSomething();
self::$testVar;
Run Code Online (Sandbox Code Playgroud)

确实如此?

但是,以下似乎也是可能的:

$self->testVar;
Run Code Online (Sandbox Code Playgroud)

然而,$ testVar是静态的.这是为什么?

另外,为什么$有时候会在自我面前使用,有时也不会使用"和"这个关键字的问题?

php this self keyword

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

Javascript IDE强制严格键入,分号和验证代码,如JSLint(或者:将编译器的优点添加到Javascript中)?

我正在寻找方法来开发大型服务器端JavaScript(我正在使用Node.js)项目更容易.

基本上,我遇到的JavaScript问题是,当我发出语法错误或者在同一个数组/变量中混合不同类型的对象类型时,我没有收到警告.

我正在使用Haxe解决这些问题(因为它给了我一个编译器),但是直接在JavaScript中编写的问题是必须为每个现有的JavaScript库创建绑定.

也许有一个IDE可以帮助我编写无错误的代码?

我基本上想要了解更多关于您使大型JavaScript项目开发更容易的经验.

提前致谢.

javascript ide jquery node.js

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

Node.js shrinkwrapped package.json导致npm install无论如何更新新版本

我有一个npm-shrinkwrap.jsonpackage.json在所谓的"部署"混帐分支.

在我的服务器上,我从github获取并合并了这个部署分支.这可确保我的服务器具有最新的部署版本.

因为没有发送node_modules二进制文件等,所以我需要在从服务器中提取项目存储库之后运行npm installnpm update在服务器端运行.

这就是我决定使用的原因npm shrinkwrap.但是,即使我npm-shrinkwrap.json在主文件夹中运行npm install它,它仍会安装较新版本的子模块,即使收缩包装的json文件已将其锁定.似乎npm甚至没有看到shrinkwrap文件.

谁能解释为什么会发生这种情况,以及如何解决这种情况?

这是以下的一部分package.json:

"dependencies" : {
    "eventemitter2" : "0.4.9",
    "after"         : "0.4.1",
    "express"       : "2.5.9"
},
"devDependencies" : {
    "mocha"     : ">= 1.0.3 < 2",
    "should"    : ">= 0.6.3 < 1",
    "request"   : ">= 2.9.202 < 3",
    "commander" : ">= 0.6.0 < 1"
},
Run Code Online (Sandbox Code Playgroud)

然而npm-shrinkwrap.json是:

{
  "name": "appname",
  "version": "0.0.1",
  "dependencies": {
    "eventemitter2": {
      "version": …
Run Code Online (Sandbox Code Playgroud)

dependencies node.js npm

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

在Typescript中如何与类型安全性绑定时赋函数?

考虑以下承诺:

import { S3 } from 'aws-sdk'
import { promisify } from 'util'

const s3 = new S3({ apiVersion: '2006-03-01' })
const getObject = promisify<S3.GetObjectRequest, S3.GetObjectOutput>(
  s3.getObject
)
Run Code Online (Sandbox Code Playgroud)

这可以正常工作,除了会出现错误,TypeError: this.makeRequest is not a function因为s3.getObject现在绑定到错误的this作用域。但是,这:

const getObject = promisify<S3.GetObjectRequest, S3.GetObjectOutput>(
  s3.getObject.bind(s3)
)
Run Code Online (Sandbox Code Playgroud)

破坏类型安全性并会出错:(Unsafe use of expression of type 'any'.假设您使用严格模式)。

那么,如何getObject在Typescript中实现s3之类的内容呢?

javascript amazon-s3 node.js typescript

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

在 React Typescript 中,如何为原生 html 元素的 ...rest 参数定义类型?

我正在尝试过滤一些道具,然后将其余道具传递给原生 html 元素,如下所示:

const Placeholder = (
  display: boolean,
  ...rest: Array<React.LabelHTMLAttributes<HTMLLabelElement>>
) => <label {...rest} />
Run Code Online (Sandbox Code Playgroud)

问题是这给了我这个错误:

Type '{ length: number; toString(): string; toLocaleString(): string; pop(): LabelHTMLAttributes<HTMLLabelElement> | undefined; push(...items: LabelHTMLAttributes<HTMLLabelElement>[]): number; ... 28 more ...; flat<U>(this: U[][][][][][][][], depth: 7): U[]; flat<U>(this: U[][][][][][][], depth: 6): U[]; flat<U>(this: U[]...' has no properties in common with type 'DetailedHTMLProps<LabelHTMLAttributes<HTMLLabelElement>, HTMLLabelElement>'.ts(2559)
Run Code Online (Sandbox Code Playgroud)

我将如何定义...rest原生 html 元素(如labelTypescript / React 中的a)的参数类型?

javascript typescript reactjs

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

快速和安全之间的平衡:时间敏感的密码加密算法

我正在开发一个客户端<>服务器多人游戏.身份验证在与所有游戏逻辑等相同的服务器上完成.这意味着我的身份验证密码加密算法不会花费太多的计算时间,因为它会延迟所有其他所需的操作.如果许多人同时登录,那么当使用非常强大的加密算法时会导致明显的延迟,这需要花费大量时间来处理.

这就是为什么我在寻找一种平衡:一种加密算法,它仍然可靠,不易破解但速度足以在同一台服务器上执行.您有什么推荐的吗?

authentication encryption algorithm performance client-server

0
推荐指数
1
解决办法
813
查看次数

CSS的哪些替代方案可以为您的网站设置样式?

在提出这个问题之后,似乎需要很多CSS黑客和技巧来实现这么简单的事情.人们说CSS破了.

所以我现在想,如果没有 CSS,什么一些替代打造先进的HTML结构和标记/布局?

我们还剩下桌子和框架吗?或者还有其他什么?

html css markup layout

0
推荐指数
2
解决办法
992
查看次数