source

Node.js와 함께 밑줄 모듈 사용

nicesource 2023. 10. 11. 20:47
반응형

Node.js와 함께 밑줄 모듈 사용

node.js와 modules에 대해 배워왔는데 언더스코어 라이브러리가 제대로 작동하지 않는 것 같습니다...언더스코어에서 함수를 처음 사용하면 _개체를 함수 호출 결과로 덮어쓰는 것 같습니다.무슨 일인지 아는 사람?예를 들어 node.js REPL에서 세션을 입력합니다.

Admin-MacBook-Pro:test admin$ node
> require("./underscore-min")
{ [Function]
  _: [Circular],
  VERSION: '1.1.4',
  forEach: [Function],
  each: [Function],
  map: [Function],
  inject: [Function],
  (...more functions...)
  templateSettings: { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g },
  template: [Function] }
> _.max([1,2,3])
3
> _.max([4,5,6])
TypeError: Object 3 has no method 'max'
    at [object Context]:1:3
    at Interface.<anonymous> (repl.js:171:22)
    at Interface.emit (events.js:64:17)
    at Interface._onLine (readline.js:153:10)
    at Interface._line (readline.js:408:8)
    at Interface._ttyWrite (readline.js:585:14)
    at ReadStream.<anonymous> (readline.js:73:12)
    at ReadStream.emit (events.js:81:20)
    at ReadStream._emitKey (tty_posix.js:307:10)
    at ReadStream.onData (tty_posix.js:70:12)
> _
3

자바스크립트 파일을 직접 만들어서 가져오면 제대로 작동하는 것 같습니다.언더스코어 도서관에 뭔가 특별한 게 있는 건 아닐까요?

오늘(2012년 4월 30일) 현재 Node.js 코드에서 언더스코어를 평소와 같이 사용할 수 있습니다.이전 의견은 REPL 인터페이스(노드의 명령줄 모드)가 "_"을 사용하여 마지막 결과를 유지하지만 코드 파일에 자유롭게 사용할 수 있으며 표준을 수행하면 문제 없이 작동한다는 점을 지적한 것입니다.

var _ = require('underscore');

Node REPL은 언더스코어 변수를 사용하여 마지막 작업의 결과를 보유하므로 언더스코어 라이브러리에서 동일한 변수를 사용하는 경우와 충돌합니다.다음과 같은 것을 시도해 보십시오.

Admin-MacBook-Pro:test admin$ node
> _und = require("./underscore-min")
{ [Function]
  _: [Circular],
  VERSION: '1.1.4',
  forEach: [Function],
  each: [Function],
  map: [Function],
  inject: [Function],
  (...more functions...)
  templateSettings: { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g },
  template: [Function] }
> _und.max([1,2,3])
3
> _und.max([4,5,6])
6

또는:

    var _ = require('underscore')._;

이름을_에 의해 사용되는node.jsREPL: 이전 입력을 보류합니다.다른 이름을 선택합니다.

참고: 다음은 코드의 다음 줄에 대해서만 작동하며, 우연이 일치하는 경우에만 작동합니다.

로다시와 함께라면,

require('lodash');
_.isArray([]); // true

아니요.var _ = require('lodash')Lodash가 필요할 때 전세계적으로 이 값을 불가사의하게 설정하기 때문입니다.

언급URL : https://stackoverflow.com/questions/5691901/using-the-underscore-module-with-node-js

반응형