Làm cách nào để lấy đầu vào trong NodeJS?

Không thể sử dụng đầu vào Dòng lệnh trong javascript, nhưng sử dụng nodejs là môi trường thời gian chạy javascript thì có thể

Tuần trước, tôi đã khám phá các vấn đề lập trình cạnh tranh và cố gắng giải quyết chúng bằng javascript. Tôi đã từng viết mã tại CodeChef, lực lượng mã, spoj, v.v. bằng Java nhưng bây giờ là một nhà phát triển javascript, nội tâm của tôi buộc tôi phải thử sự cố trong javascript

Điều này có thể khác với những cái khác nhưng tôi thích viết mã cục bộ hơn và khi nó hoạt động tốt, sau đó gửi mã tới các nền tảng trên

Bài viết này sẽ giúp bạn thiết lập và giải thích mã ban đầu sẽ được yêu cầu để nhận đầu vào của người dùng trong nút. js

Trước khi chúng tôi đi sâu vào triển khai, trước tiên hãy hiểu các thuật ngữ chính

Các chức năng chính cần hiểu

tiến trình. stdin()

Quy trình . thuộc tính stdin có sẵn trên mô-đun quy trình lắng nghe đầu vào của người dùng. Thuộc tính này stdin là một luồng có thể đọc được và sử dụng chức năng on để lắng nghe sự kiện.

				
					// Syntax

process.stdin.on()
				
			

tiến trình. tiêu chuẩn. bản tóm tắt()

Điều này tiếp tục luồng có thể đọc được nếu nó đã bị tạm dừng trước đó. Chức năng này đảm bảo luồng có thể đọc được bắt đầu trước khi chúng tôi nhận đầu vào của người dùng

dòng đọc ()

Chức năng readline() khả dụng trên nút. js Mô-đun Readline cho phép đọc dòng đầu vào theo dòng.

chủ yếu()

Trong các ngôn ngữ lập trình truyền thống, chúng ta thấy hàm main là bắt buộc vì việc thực thi chỉ bắt đầu từ hàm này. Nhưng đây không phải là trường hợp của javascript

Để làm cho nó phù hợp với truyền thống, chúng tôi cũng đã viết chức năng chính ở đây nhưng bạn có thể sử dụng bất kỳ tên chức năng nào bạn thích

Cách sử dụng chức năng này là nhận và xử lý đầu vào của người dùng, gọi hàm cần thiết và in đầu ra ra thiết bị đầu cuối hoặc ghi vào hệ thống tệp

Thực hiện

Báo cáo vấn đề

Thực hiện chức năng lấy 2 đầu vào chiều dài và chiều rộng từ tệp và in đầu ra trên thiết bị đầu cuối

Giải pháp

Tạo 2 file đầu vào. js sẽ có mã và đầu vào. txt chứa đầu vào thực tế. 2 file này nên để chung 1 thư mục

Kiểm tra cấu trúc và chạy trong ảnh chụp màn hình thay thế bên dưới

Làm cách nào để lấy đầu vào trong NodeJS?

Trên đây là chỉ số. js, bây giờ ở đầu vào. txt, chúng ta có thể cung cấp 2 số trong đầu vào e. g 10 20 (có dấu cách cách nhau)

Bạn đang phát triển một công cụ CLI nhỏ trong Node. js và muốn có thể nhắc người dùng nhập đầu vào từ dòng lệnh? . js cung cấp mô-đun readline chính xác cho mục đích này. Nó cung cấp một giao diện để đọc dữ liệu từ một luồng có thể đọc được, chẳng hạn như process.stdin, mỗi lần một dòng

Đây là một ví dụ đơn giản nhắc người dùng nhập tên và quốc tịch của họ, sau đó in các chi tiết này trên bảng điều khiển

const readline = require('readline')

const rl = readline.createInterface({
  input: process.stdin,
  output: process.stdout
})

// ask the user for the name input
rl.question(`What's your name? `, name => {
  // ask for nationality
  rl.question(`What are you from? `, country => {
    // log user details
    console.log(`${name} is from ${country}`)

    // close the stream
    rl.close()
  })
})

Trong ví dụ trên, phương thức readline.createInterface() được sử dụng để tạo một thể hiện của readline bằng cách xác định các luồng có thể đọc và ghi

Phương thức

// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
0 hiển thị truy vấn (câu hỏi) và đợi người dùng nhập câu trả lời. Khi có sẵn dữ liệu đầu vào, nó gọi phương thức gọi lại chuyển đầu vào của người dùng làm tham số đầu tiên

Cuối cùng, chúng ta gọi phương thức

// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
1 trong cuộc gọi lại cuối cùng để đóng giao diện readline. Bạn cũng có thể nghe sự kiện
// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
3 được gọi khi luồng bị đóng. Nó có thể hữu ích để làm một số câu hỏi bài làm việc

// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})

Đọc tài liệu readline để tìm hiểu thêm về tất cả các phương pháp và sự kiện có sẵn

Mô-đun của bên thứ 3

Mô-đun readline là một Nút cấp thấp. js mà bạn có thể nghĩ là quá phức tạp đối với các trường hợp sử dụng phức tạp. Nếu bạn muốn có giao diện cấp cao hơn để xử lý đầu vào của người dùng, chỉ cần sử dụng mô-đun nhắc từ Trình quản lý gói nút (NPM). Bạn có thể thêm nó vào dự án của mình bằng cách thực hiện lệnh sau

$ npm install prompt --save

Nó tương đối dễ sử dụng

// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
6 hơn mô-đun readline. Bạn không cần định cấu hình rõ ràng các luồng có thể đọc và ghi

Hãy để chúng tôi viết lại ví dụ trên bằng cách sử dụng mô-đun

// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
6

const prompt = require('prompt')

// start the prompt
prompt.start()

// ask the user for the input
prompt.get(['name', 'country'], (err, result) => {
  if (err) {
    throw err
  }

  // print user details
  console.log(`${result.name} is from ${result.country}`)
})

Xử lý mật khẩu

Mô-đun

// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
6 giúp yêu cầu người dùng nhập mật khẩu dễ dàng hơn một cách an toàn. Nó sẽ che dấu đầu vào thay vì hiển thị các ký tự thực của mật khẩu

const prompt = require('prompt')

// start the prompt
prompt.start()

// define properties schema
var schema = {
  properties: {
    name: {
      pattern: /^[a-zA-Z\s\-]+$/,
      message: 'Name must be only letters, spaces, or dashes',
      required: true
    },
    password: {
      hidden: true
    }
  }
}

// ask the user for the input
prompt.get(schema, (err, result) => {
  if (err) {
    throw err
  }

  // print user credentials
  console.log(`${result.name} / ${result.password}`)
})

Lưu ý thuộc tính

$ npm install prompt --save
0 trong ví dụ trên. Nó đảm bảo rằng đầu vào, chúng tôi nhận được từ người dùng cho thuộc tính
$ npm install prompt --save
1, được xác thực trước khi chuyển sang đầu vào thuộc tính tiếp theo

Thêm thuộc tính vào một đối tượng

Mô-đun

// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
6 hiển thị một phương thức tiện lợi khác có tên là
$ npm install prompt --save
3 để mở rộng một đối tượng hiện có bằng cách thêm dữ liệu thuộc tính từ dòng lệnh

const prompt = require('prompt')

// start the prompt
prompt.start()

// create an object
const user = {
  name: 'John Doe',
  country: 'USA'
}

// extend `user` object
prompt.addProperties(user, ['email', 'age'], err => {
  if (err) {
    throw err
  }

  // print modified object
  console.dir(user)
})

Bây giờ, nếu bạn chạy chương trình trên, bạn sẽ thấy một đầu ra tương tự như sau

$ node index.js
prompt: email:  [email protected]
prompt: age:  23
{ name: 'John Doe',
  country: 'USA',
  email: '[email protected]',
  age: '23' }

Như bạn có thể thấy ở trên,

// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
6 có khả năng tùy biến cao. Kiểm tra các tài liệu chính thức để biết thêm thông tin.
// listen for close event
rl.on('close', () => {
  console.log('Goodbye 👋')

  // exit the process
  process.exit(0)
})
6 có thể là một lựa chọn tốt nếu bạn đang có kế hoạch xây dựng một công cụ CLI vững chắc trong Node. js

Làm cách nào để lấy đầu vào từ dòng lệnh trong NodeJS?

Chúng tôi có thể sử dụng mô-đun đường dây đọc tích hợp sẵn là một trình bao bọc xung quanh I/O tiêu chuẩn, phù hợp để nhận đầu vào của người dùng từ dòng lệnh . Đây là một ví dụ đơn giản. Hãy thử cách sau trong một tệp mới. const readline = require("readline"); .

Làm cách nào để lấy đầu vào trong mảng trong NodeJS?

javascript. Để sử dụng trong Codeforces . var num = readline(). tách(" "). map(x => parseInt(x)); // num sẽ là một mảng [1,2,3] var x = num[0] . var y= số[1]; .

Làm cách nào để lấy đầu vào từ JavaScript?

Trong JavaScript, chúng tôi sử dụng hàm prompt() để yêu cầu người dùng nhập dữ liệu . Là một tham số, chúng tôi nhập văn bản mà chúng tôi muốn hiển thị cho người dùng. Sau khi người dùng nhấn “ok”, giá trị đầu vào được trả về. Chúng tôi thường lưu trữ đầu vào của người dùng trong một biến để chúng tôi có thể sử dụng thông tin trong chương trình của mình.

Làm cách nào để nhận đầu vào bảng điều khiển trong js?

Nhận đầu vào của người dùng từ bảng điều khiển NodeJS . Bạn có thể yêu cầu () mô-đun như sau. const readline = require("readline"); . use the provided readline module. You can require() the module as follows: const readline = require("readline"); Then, you need to create an Interface instance that is connected to an input stream.